- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析三种网络即时通信工具的异同
―基于QQ、Skype及NetMeeting
标签:QQ,Skype,Netmeeting,即时通讯工具,原理,异同
即时通信工具是目前上网用户使用频率最高的软件,无论是老牌的ICQ还是国内腾讯旗下的QQ,或者是微软的MSN,雅虎通(Yahoo!Messager),Skype,及Microsoft Netmeeting等,都是大众关注的焦点。他们能够让用户迅速的在网上找到朋友或者工作伙伴,可以实时进行交谈及文件信息的传送。而且现在不少的即时通信(IM)还集成了语音聊天,数据交换,网络会议,电子邮件等功能。现基于用户数较多的三款IM,即QQ,Skype,Netmeeting,简要介绍其各自的工作原理,然后大致比较他们的异同。
即时通讯工具的通讯原理
1、系统架构的方式
从系统的组成上看,即时通信是众多终端用户连往一个运营商通信网络的服务类软件,符合C/S结构的特征;从运作原理上看,系统中的任意两台终端之间可以直接进行交流而不必通过任何第三方服务器中转,这一点又具备了P2P的网络性质。
2、传输层的技术
TCP是互联网传输层内置的可靠通信协议,一般使用在需要提供稳定连接通道和传输重要数据的场合。TCP又有同步和异步之分。同步TCP实现机制简单,代码的可读性好,但是在通信中,通信的一方往往不得不为了等待对方做出响应而阻塞线程,降低了程序执行的并发程度;但是异步TCP能够很好的达到并行执行的效果,缺点是要运用特殊的实现机制,编程难度较高。
即时通讯工具面世以来,网络聊天的方式从异步TCP先P2P方式转变,服务器不再承担聊天的转发任务,而是由会话双方直接互发消息,因此使用UDP。即时通信工具中,UDP是主导的消息传输机制,但在可靠性要求较高的场合,TCP仍然有着不可替代的作用,不过这些特殊的应用情形下数据的传输量都不是很大,为了提高传输效率,通常使用同步TCP。
匿名UDP是即时通讯系统一个重要的技术。“匿名”是指:收到消息的一方并不知道发给它消息的远程进程究竟对应哪个端。匿名UDP通常使用在即时通信需要发送消息的场合(按照通信协议发送会话消息,发出控制命令,向系统中其他用户发送聊天信息等),由于消息是匿名的,因此发送方要按照协议的约定将自己的端点地址封装进某个字段,随着消息一起携带给对方,经由对方程序解析以识别自己。匿名UDP套接字仅仅用于发送数据报,它以简便、快捷的使用方式成为即时通信工具信息传输的主要模式。创建匿名UDP的套接字对象,使用UdpClient类的构造函数:public UdpClient (int port);
UdpClient sendUpdClient=new UdpClient(0); //initialize a proper port for the Socket
Byte[] sendbytes=Encoding.Unicode.GetBytes(message);
IPEndPoint remoteIPEndPoint=IPportNum //identify a remote port
sendUdpClient.Send(sendbytes, sendbytes.Length, remoteIPEndPoint);
sendUdpClient.Close();// close the current IPport
即时通信系统必须要能够准确的识别和定位加入其中的每一个用户,这就需要用到实名UDP。在这种方式下,接受方可以由收到的消息得知发送方进程的端口。在使用实名UDP时,一个本地端口只能关联一个UDP套接字。简而言之,在发送消息时可以从任意端口匿名发出,接受却必须在特定的端口,即接受消息的实名UDP代表着用户本身,它与本地用户线程是一一对应的。此处代码略去。
3、协议设计
协议设计主要是对服务器与用户终端之间会话信息的格式作出具体的规定。协议主要包括三个方面的内容:
客户端与服务器的会话
客户端与服务器之间的会话流程图如下:
服务器端 客户端 Login,username,localIPEndPoint
UDP(anonymous) UDP(realname)
Accept , port
UDP(realname)
文档评论(0)