网络通信设计
网络通信协议设计
1 粘包问题
粘包就是连续向对端发送两个或者两个以上的数据包,对端在一次收取中收到的数据包数量可能大于1个,当大于1个时,可能是几个(包括一个)包加上某个包的部分,或者干脆几个完整的包在一起。当然,也可能收到的数据只是一个包的部分,这种情况一般也叫作半包。
粘包问题示意:
解决办法:
- 固定包长的数据包
- 以指定的字符(串)为包的结束标志位
- 包头+包体格式:包头是固定大小的,且包头必须包含一个字段来说明接下来的包体有多大。
粘包就是连续向对端发送两个或者两个以上的数据包,对端在一次收取中收到的数据包数量可能大于1个,当大于1个时,可能是几个(包括一个)包加上某个包的部分,或者干脆几个完整的包在一起。当然,也可能收到的数据只是一个包的部分,这种情况一般也叫作半包。
粘包问题示意:
解决办法: