解决TCP网络传输“粘包”问题

来源: 作者: 2007-12-03 出处:pcdog.com

tcp/ip协议  操作系统  多线程  局域网  数据结构  
上一页 1 2 3 4 下一页 
解决TCP网络传输“粘包”问题(图一)

  图1解决TCP网络传输“粘包”问题(图二)

  图2

解决TCP网络传输“粘包”问题(图三)

  图3

  粘包情况有两种,一种是粘在一起的包都是完整的数据包(图1、图2所示),另一种情况是粘在一起的包有不完整的包(图3所示),此处假设用户接收缓冲区长度为m个字节。

  不是所有的粘包现象都需要处理,若传输的数据为不带结构的连续流数据(如文件传输),则不必把粘连的包分开(简称分包)。但在实际工程应用中,传输的数据一般为带结构的数据,这时就需要做分包处理。

  在处理定长结构数据的粘包问题时,分包算法比较简单;在处理不定长结构数据的粘包问题时,分包算法就比较复杂。特别是如图3所示的粘包情况,由于一包数据内容被分在了两个连续的接收包中,处理起来难度较大。实际工程应用中应尽量避免出现粘包现象。


更多内容请看PCdog.com--网络常见故障专题
上一页 1 2 3 4 下一页 
上一篇:一个基于UDP的网络通迅程序
下一篇:网络socket编程(2)---客户端