免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4599 | 回复: 9
打印 上一主题 下一主题

socket通信,消息接收端会有缓冲区益处的情况吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-18 10:30 |只看该作者 |倒序浏览
socket文件传输(不停的发n个文件),接收端每接收一个文件要对文件进行处理,接收端会因为速度不匹配发生缓冲区爆大的情况吗?

论坛徽章:
0
2 [报告]
发表于 2007-09-18 10:38 |只看该作者
一般内核缓冲区比较大的  我上次在linux下测试过,具体多少不是很清楚了,如果你不接受的话,时间一长,缓冲区就爆掉了,但是你接受下来进行处理了,机器处理速度很快,应该不会出现你说的情况,除非你的处理过程被阻塞了。

呵呵 个人理解

论坛徽章:
0
3 [报告]
发表于 2007-09-18 10:41 |只看该作者
记得好像是,如果用户进程一直不从缓冲区中读取数据的话,可能导致缓冲区满后丢弃后来的包。

论坛徽章:
0
4 [报告]
发表于 2007-09-18 10:48 |只看该作者
若是tcp协议的话,接收端缓冲区满了之后会抛弃新接收到的数据包,并且反馈一个0窗口大小的ack。
udp的就直接抛弃,不会反馈任何数据包。
这些情况都不会导致recv(recvfrom)读取多于你指定的缓冲区长度的数据

论坛徽章:
0
5 [报告]
发表于 2007-09-18 10:50 |只看该作者

回复 #1 kukule75 的帖子

tcp的窗口机制可以保障你所谓的问题不会出现。

论坛徽章:
0
6 [报告]
发表于 2007-09-18 11:00 |只看该作者
谢谢各位,心中有数了

论坛徽章:
0
7 [报告]
发表于 2007-09-18 11:16 |只看该作者
原帖由 cugb_cat 于 2007-9-18 10:41 发表
记得好像是,如果用户进程一直不从缓冲区中读取数据的话,可能导致缓冲区满后丢弃后来的包。

一定会的

论坛徽章:
0
8 [报告]
发表于 2007-09-18 11:17 |只看该作者
原帖由 net_robber 于 2007-9-18 11:16 发表

一定会的


我的功力还不够啊

论坛徽章:
0
9 [报告]
发表于 2007-09-18 11:23 |只看该作者
如果丢包了,请换一块网卡。

论坛徽章:
0
10 [报告]
发表于 2007-09-18 11:34 |只看该作者
窗口的含义就是防止 过快。  所以又出现了糊涂窗口现象
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP