TCP是一種流式連接,對小包會進行封包緩存發送,大包會出現分包發送。接收端就會發現接收到的數據和發送的數據的次數不一致。這個就是粘包現象。
解決:
1、定長數據包(太理想)
2、使用特殊標記來區分消息間隔(字符數據可以,二級制數據不可行)
3、把消息尺寸與消息一併發送(目前最通用的做法是在每次發送的數據的固定偏移位置寫入數據包的長度)
閱讀更多 wendellFang 的文章
2020-02-14 22:42:17 wendellFang
TCP是一種流式連接,對小包會進行封包緩存發送,大包會出現分包發送。接收端就會發現接收到的數據和發送的數據的次數不一致。這個就是粘包現象。
解決:
1、定長數據包(太理想)
2、使用特殊標記來區分消息間隔(字符數據可以,二級制數據不可行)
3、把消息尺寸與消息一併發送(目前最通用的做法是在每次發送的數據的固定偏移位置寫入數據包的長度)
閱讀更多 wendellFang 的文章