TCP下拆包与封包问题概要
对于基于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的情况就是大家经常说的粘包,就需要我们把接收到的数据进行拆包,拆成一个个独立的数据包.为了拆包就必须在发送端进行封包.?另:对
您可能关注的文档
- T35C产品介绍概要.ppt
- T6产品功能介绍概要.doc
- T6标2010年12月安全工作月报概要.doc
- T9炉管焊接工法概要.doc
- TBP丰田问题解决法概要.ppt
- TBS系列浮筒式滗水器技术参数与工艺流程概要.doc
- TBT1632.4正文概要.doc
- TC-D2000数显同步定点仪16K概要.doc
- SYSMEXKX-21维修手册概要.doc
- TC5610塔机拆卸方案模板(据工况修改红色字体部分)概要.doc
- 《GB/T 21709.6-2026针灸技术操作规范 第6部分:穴位注射》.pdf
- GB/T 47335.1-2026中医药 诊断词汇 第1部分:舌象.pdf
- 中国国家标准 GB/T 42168.2-2026避孕套 临床研究指南 第2部分:女用避孕套基于自我报告的临床功能研究.pdf
- 《GB/T 42168.2-2026避孕套 临床研究指南 第2部分:女用避孕套基于自我报告的临床功能研究》.pdf
- GB/T 42168.2-2026避孕套 临床研究指南 第2部分:女用避孕套基于自我报告的临床功能研究.pdf
- 中国国家标准 GB/T 43590.511-2026激光显示器件 第5-11部分:激光光源模组光学测试方法.pdf
- GB/T 43590.511-2026激光显示器件 第5-11部分:激光光源模组光学测试方法.pdf
- 《GB/T 43590.511-2026激光显示器件 第5-11部分:激光光源模组光学测试方法》.pdf
- 2026多元公平包容大奖(Belonging+Awards)申报指南.pptx
- 杰富瑞-美国清洁能源:内部预警已至,住宅太阳能商业模式生变-The Call Is Coming From Inside–Residential Solar Biz Model In Flux-20260422.pdf
原创力文档

文档评论(0)