1. 程式人生 > >網路-----28 socket模組 粘包

網路-----28 socket模組 粘包

一 .socket 模組引數及方法

 

 

二.緩衝區

 

 三.粘包

  1.兩種粘包現象

  ①連續的小包可能會被優化演算法給組合到一起進行傳送

  ②第一次如果傳送的資料大小2000B接收端一次性接受大小為1024,

  這就導致剩下的內容會被下一次recv接收到,導致結果錯亂

 

  2.兩種解決方案

  ①方案一:由於雙方不知道對方傳送資料的長度,導致接收的時候,可能接收不全,

  或者多接收另外一次傳送的資訊內容,所以在傳送真實資料之前,要先發送資料的長度,

  接收端根據長度來接收後面的真實資料,但是雙方有一個互動確認的過程

  ②方案二:

 

    Struct模組,

 

    打包:struct.pack(‘i’,長度)

 

    解包:struct.unpack(‘i’,位元組)