- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有关Tcp编程论文
通讯系统程序开发中面临的问题 ---------主要是TCP下的Socket编程面临的问题 4090511 唐盼前言:首先进行通讯系统开发过程中要面临要虑的使用Socket进行通讯的方式,通讯方式一共有有下面的3种。(1) 字节流套接字(Stream Socket):TCP/IP协议族中TCP协议使用此类接口,它提供面向连接的(建立虚电路)、无差错的、发送顺序一致的、包长度不限和非重复的网络信包传输。(2) 数据报套接字(Datagram Socket):TCP/IP协议族中的UDP(User Datagram Protocol)协议使用此类接口,它是无连接的服务,以独立的信包进行网络传输,信包最大长度为32kB,传输不保证顺序性、可靠性和无重复性,通常用于单个报文传输或可靠性要求不高的场合。(3) 原始数据包套接字(Raw Socket):提供对网络下层通信协议(如IP协议)的直接访问,一般不是提供给普通用户的,主要用于开发新的协议或用于提取协议较隐蔽的功能。其中字节流套接字是最常用的套接字类型。在设计时要考虑的问题主要有以下问题:性能永远是第一位:有时候一个if判断都要考虑性能,毕竟要损耗一个CPU指令,而在通讯系统服务器,每秒钟都产生上百万级别的通讯量,这样一个if就浪费了1个毫秒了.系统环境极其恶劣:所有我们可以想象的恶意攻击、异常输入等都要考虑.网络说断就断:在socket环境下,客户端可以以各种理由断开链接,而且服务器根本不会知道,连一个流水作业的业务逻辑都无法保证正常执行,因此需要设计各种辅助的协议、架构去监督。 各种网络链接问题:例如代理、防火墙等等…现有的Socket编程资源------------------1. 首选推荐开源的XMPP框架,也就是Google的Gtalk的开源版本。里面的架构写的非常漂亮。特点就是:简洁、清晰。XMPP 是一个分散型通信网络,这意味着,只要网络基础设施允许,任何 XMPP 用户都可以向其他任何 XMPP 用户传递消息。多个 XMPP 服务器也可以通过一个专门的 “服务器-服务器” 协议相互通信,提供了创建分散型社交网络和协作框架的有趣可能性.顾名思义,XMPP 可用于满足广泛的、对时间敏感的特性要求。实际上,Google Wave,一个大型多用户协作环境,将 XMPP 作为其联合协议的基础。。2. 其次推荐LumaQQ.net,这套框架本身写的一般般,但是腾讯的服务器非常的强大,这样必然导致客户端也要比较猛。腾讯的实力是在国内互联网业内毫无争议的老大.并且可以通过学习这套框架,能够了解腾讯的IM传输协议设计,而且他们的协议是TCP/UDP结合,一举两得。何乐而不为之?3. 最后就是DotMsn。这个写的实在很一般般,而且也主要针对了MSN的协议特点。到了06年就停止开发了,后来出来了 MSNPSharp,继承了DotMsn的框架,继续更新到了2010年4月。DotMSN是一个开放源代码的独立类库提供即时通讯服务而无需MSN Messenger服务.类库是C #编写的,因此.NET所支持的语言都能够使用。 由于其简洁自然的面向对象特性,使其易于使用和实施。 DotMSN灵活易于扩展,稳健和轻量级的特性易于增强任何应用。 使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能。------------------Socket的选择------------------在Java,到了Java5终于出现了异步编程,NIO,于是各种所谓的框架冒了出来,例如MINA, xsocket等等;而在.NET,微软一早就为我们准备好了完善的Socket模型。主要包括:同步Socket、异步Socket;我还听说了.net 3.x之后,异步的Socket内置了完成端口。综合各种模型的性能,总结如下:1. 如果是短链接,使用同步socket。例如http服务器、转接服务器等等。2. 如果是长链接,使用异步socket。例如通讯系统(QQ / Fetion)、webgame等。3. .net的异步socket的连接数性能在 7500/s(每秒并发7500个socket链接)。而听说完成端口在1.5w所有.4. 大概java的NIO性能在5000/s所有.------------------TCP Socket协议定义------------------下面主要介绍TCP的socket编程。大多数人第一次写socket,总是以为在发送方压入一个Helloworld,接收方收到了这个字符串,就“精通”了Socket编程了。而实际上,这种编程根本不
文档评论(0)