15.爲什麼會粘包


1、發送端

send

  SendBuf 發送緩衝區(在各種操作系統下面緩衝區大小存在差異)

 

2、

  網絡傳輸層

  數據流      

 

3、接收端

  RecvBuf 接收緩衝區

select    recv
    DataHeader
    DataBody

接收端沒有及時讀取緩衝區數據,會導致:
緩衝區溢出/無法發送/網絡阻塞

解決方法:
接收端緩衝區能讀取的數據儘量讀取出來,防止接收端緩衝區溢出。這樣可能會發生粘包

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章