什么是TCP的粘包,拆包问题?

 什么是粘包和拆包,为什么会出现这个问题?

        TCP粘包和拆包问题是指在TCP通信的过程中,发送方将多个小数据包粘合在一起发送,而接收方则将这些小的数据包进行拆分接收,在这个过程中可能会出现粘包和拆包问题。

如何解决?

对于粘包和拆包问题,一般都是对包的格式进行约束,常见的解决方案有四种:

  • 将业务层协议包的长度固定下来,每个包都固定长度,比如512个字节大小,如果客户端发送的数据长度不足512个字节,则通过补充空格的方式补全到指定长度。
  • 在每个包的末尾使用固定的分隔符,如换行符/,如果一个包被拆分了,则等待下一个包发送过来之后找到其中的,然后对其拆分后的头部部分与前一个包的剩余部分进行合并即可。
  • 仿照TCP/IP协议栈,将消息分为header和body,在head中保存有当前整个消息的长度,只有在读取到足够长度的消息之后才算是读到了一个完整的消息;
  • 通过自定义协议进行粘包和拆包的处理。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值