15.为什么会粘包


1、发送端

send

  SendBuf 发送缓冲区(在各种操作系统下面缓冲区大小存在差异)

 

2、

  网络传输层

  数据流      

 

3、接收端

  RecvBuf 接收缓冲区

select    recv
    DataHeader
    DataBody

接收端没有及时读取缓冲区数据,会导致:
缓冲区溢出/无法发送/网络阻塞

解决方法:
接收端缓冲区能读取的数据尽量读取出来,防止接收端缓冲区溢出。这样可能会发生粘包

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