# TCP粘包
# Socket通信-TCP粘包
# 什么是TCP粘包
当前消息与前一个后/后一个消息的片段一起发送到了客户端。
# 为什么会粘包
- 操作系统为了优化传输速度会将小包合并发送,大包拆分发送的情况。
- 由于网卡传输接口大小的限制。
# 解决办法
# 1. 固定长度分割
每次发送固定长度的消息,长度不足时补0。
# 2. 分隔符分割
使用分隔符分割消息,比如:r
、rn
、@@$$
等,定义一个特殊的字符用来分割消息。
# 3. 自定义消息头分割
消息开头固定n个字节用来记录消息的长度。
# 总结
tcp通信时常见的难点就在于粘包的处理,只要掌握常用的处理办法就可以轻松驾驭tcp了。