1.2 国内外的发展状况
随着移动互联网的发展,即时通信也向移动化扩展。目前,微软、AOLYahoo、UcSTAR等即时通信提供商都提供互联网的接入即时信息通讯业务,用户通过安装相应的软件来收发消息和文件。
国内的情况飞秋、飞鸽名声大噪,但是由于局域网聊天工具市场无法估值,盈利模式不清,很多都是工作室、个人在运营,受制于成本更新也不太频繁甚至一年都不发更新。
1.3 课题开发环境与目标
用C#为工具语言,采用了对等网的开发框架,XML存储数据,开发运行平台选取的是VS2010;采用面向对象的编程方法。结合所学知识,在导师的指导下,开发出一个高效、安全、可靠、界面友好的局域网聊天工具。
1.4 C# 语言介绍
C#是专门为.NET应用而开发出的语言,他具有语法简洁,面向对象,面向Web,功能强大,灵活性与兼容性,完整的安全性与错误处理等特点。
⑴ 语法简洁:C#的代码没有了指针和关键字。
⑵ 面向对象:C#是面向对象的语言,具有封装性,多态性和单继承性。C#中常量和变量,还有函数等被封装在类中,提高了代码的可读性,降低了冲突。
⑶ 面向Web:C#可以将大多数组件转换为Web服务,并允许他们通过Internet被运行在任何操作系统上的任何语言所调用。
⑷ 功能强大:C#可以开发控制程序,图形程序NT服务程序,普通组件,Web组件,Web页面,Web服务等。
⑸ 灵活性和兼容性:C#是一种既灵活又高效的开发语言,为开发人员提供了灵活而快速的开发手段,C#遵守.NET公用语言规范,保证了C#组件与其它语言组件之间的相互操作。
2 核心相关的概念与技术
2.1 Socket 原理
socket是一个通信链的句柄,用于描述IP地址和端口。在Internet上的主机一般运行多个服务软件,同时提供多种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
(1) TCP/IP 、UDP
是Internet最基本的协议由网络层的IP协议和传输层的TCP协议组成。
IP层接收由网络接口层发来的数据包,并把该数据包发送到TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到低层。
TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的,所以只能用于端到端的通讯。TCP将它的信息送到更高层的应用程序,应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。源^自·751·文.论,文'网]www.751com.cn
UDP 是OSI参考模型中的一种无连接的传输层协议,提供面向事务的简单的不可靠的信息传送服务。在OSI模型中的第四层——传输层,处于IP协议的上一层。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
UDP协议的主要作用是将网络数据流量压缩成数据包的形式。
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求程序员编程验证。
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS。