对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.
一.为什么基于TCP的通讯程序需要进行封包和拆包.
TCP是个流协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其间是没有分界线的.但一般通讯程序开发是需要定义一个个相互独立的数据包的,比如用于登陆的数据包,用于注销的数据包.由于TCP流的特性以及网络状况,在进行数据传输时会出现以下几种情况.假设我们连续调用两次send分别发送两段数据data1和data2,在接收端有以下几种接收情况(当然不止这几种情况,这里只列出了有代表性的情况).A.先接收到data1,然后接收到data2.B.先接收到data1的部分数据,然后接收到data2余下的部分以及data2的全部.C.先接收到了data1的全部数据和data1的部分数据,然后接收到了data2的余下的数据.D.一次性接收到了data1和data2的全部数据.
对于A这种情况正是我们需要的,不再做讨论.对于B,C,D的情况就是大家经常说的粘包,就需要我们把接收到的数据进行拆包,拆成一个个独立的数据包.为了拆包就必须在发送端进行封包.?另:对
您可能关注的文档
最近下载
- 推荐书目儿童文学《小猪唏哩呼噜》打印版已整理可直接小册子打印推荐读物儿童文学.pdf VIP
- 钢结构设计软件:Tekla Structures二次开发_(9).与外部系统的数据交换.docx VIP
- DB43∕T 3283-2025 中医智慧康养机构管理规范.docx VIP
- 常见的氨基酸的分类特点及理化性质.ppt VIP
- ISO 14155-2020 医疗器械的人类受试者临床研究.临床试验质量管理规范 中文版.pdf
- 环境毒理学(山西大学)在线网课章节测试答案.pdf
- 道路普通物流货物运输企业生产安全事故应急预案(最全).doc VIP
- 《中华民族共同体概论》课件高教社2024版课件合集-第十讲中外会通与中华民族巩固壮大(明朝时期)+第十一讲中华一家与中华民族格局底定(清前中期)+第十二讲民族危亡与中华民族意识觉醒(1840—1919).pptx VIP
- 2026年中考第二次模拟考试:数学二模模拟卷(内蒙古专用)(考试版).docx VIP
- 标准图集-苏G02-2019房屋建筑工程抗震构造设计.pdf VIP
原创力文档

文档评论(0)