TCP粘包问题的解决

来源:互联网 发布:软件体系结构设计实例 编辑:程序博客网 时间:2024/05/29 07:40

名词解释:

在TCP协议中,每次发送的数据长度是不确定的,从接收方来看,可能每次收到的数据都不完整,或者是收到多个数据包,这就是所谓的粘包问题。

  • 解决方式:
    1.通过应用层协议来处理粘包问题,每个应用包都带一个包头,包头指示了整个包的长度,当服务器端获取到指定的包长时才说明获取了完整的数据包。
    2.指定包的结束标识,这样一旦获取到指定的标识,说明获取了完整的数据包。

  • 举例:
     假设一个数据包由包头和包体构成,包头4个字节,用来指示整个数据包的长度,包体才是真正的应用数据。
     接受过程如下:先收包头长度的数据,在收到包头数据之后,从包头中获取包体的长度,然后再接收包体长度的数据,这是就收到了一个完整的数据包,最后将这个数据包回调到应用层去处理。

0 0
原创粉丝点击