在网络程序中, 粘包, 不完全包是肯定会遇到的.
原因是大量数据连续发送时, 因为有缓存, 底层驱动很可能会自动合并几个包,也可能导致合并发送时有不完全的包被发送. 或者一个数据包过大, 导致被自动会成多个数据包.
1. 尽量提高两个数据包之间的时间间隔.尽量减小一个包的包长 (这种方案我想也不是一般应用场景所愿意使用的)
2. 数据接收端进行包完整性判断, 如果一次接收的数据大于一个包, 就进行拆包, 如果小于一个包就等下次接收的数据来了组成一个完整包.