粘包問題原因和解決方法

侯佳奇發表於2024-11-04

形成粘包的原因有兩方面

  1. 傳送方: 預設使用了Nagle演算法, Nagle演算法會收集多個分組一起傳送導致粘包
  2. 接收方: 接收方存在快取,當讀取速度過慢會導致堆積讀取時發生粘包

解決的話

傳送方可以使用TCP_NODELAY關閉演算法

接收方的話需要應用層來處理根據長度來切割粘包,並快取切割剩下的包頭.

相關文章