码迷,mamicode.com
首页 > 其他好文 > 详细

Udp -内部缓冲区

时间:2018-05-14 21:39:36      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:com   关联   end   分享图片   发送   缓冲区   应该   使用   技术   

 

1.每个socket关联了两个缓冲区,一个用于发送,一个用于接收。

2.技术分享图片

 

3.发送:(1)sendto()把数据放在sendbuf(缓冲区),通知os来取

  (2)os在适当的时候过来取数据,并发到网络

这意味着:存入数据和发送数据存在时间差(异步的),如果存入数据太快太多,缓冲区会满

4.    接收:(1)os不停吧从网络上接收数据,缓存在recvbuf里

      (2)recvfrom从缓存区里接收数据

这意味着:不论你是否去取数据,os总是把数据收下来存好,recfrom是从recvbuf里取走现成的数据,如果不及时取走。则缓冲区满

小结:发送和接收是一个异步过程

缓冲区满的处理:

发送:

1)知道缓冲区有剩余空间(阻塞)

2)新发送的数据没有存入缓冲区(直接丢掉)

接收:

1)新的数据不被接收

2)删除缓冲区里的现有的数据,存放新的数据。

丢包对UDP来说是很正常,在使用UDP时就应该允许丢包

 

Udp -内部缓冲区

标签:com   关联   end   分享图片   发送   缓冲区   应该   使用   技术   

原文地址:https://www.cnblogs.com/zhouqianwei/p/9038005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!