TCP粘包和拆包

Posted on 2021-01-14 21:08  风沙红尘  阅读(100)  评论(0)    收藏  举报

假设客户端分别发送了两个数据包D1和D2给服务器,由于服务器一次读取的字节数是不确定的,故可能存在以下4中情况:

  1.  服务端分两次读到了两个独立的数据包D1和D2,没有粘包和拆包
  2. 服务端分一次收到两个数据包,D1和D2粘合一起,被称为TCP粘包
  3. 服务端分两次读取到了两个数据包,第一次完成的D1和D2部分,第二次是D2剩余部分,被称为TCP拆包
  4. 服务端分两次读到了两个数据包,第一次读到D1的部分内容,第二次是D1剩下的内容和D2全部包,拆包
  5. 也有可能,D1和D2过大,服务器需要多次接收,多次拆包

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3