粘包问题的产生,解决

粘包问题的产生:
TCP协议是基于数据流的协议
如果发送数据的数据字节多于接收方的缓存区容量就会出现粘包问题
如果多次发送数据并且数据容量很小且时间间隔短,也会出现粘包问题

如何解决粘包问题
在每次传送数据之前先将要传输的数据转化为字节,然后用len()来得到
长度,先传输长度,然后将接受的缓存区大小调整为长度,就不会出现粘包
问题了
但是传输长度也可能出现粘包问题,所以为了解决问题就使用struct模块
struct模块专门用来转整数为一个固定长度的字节,例如:
struct.pack('q',len(res))这就可以得到一个8个字节的传输的长度的字节
然后接收方第一次接受长度信息只接受8个字节就能解决传输长度粘包问题了
posted @ 2019-03-04 15:52  XSHUshu  阅读(532)  评论(0编辑  收藏  举报