免费注册 查看新帖 |

Chinaunix

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

[C] 关于send和recv函数的缓冲区大小的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-24 16:36 |只看该作者 |倒序浏览
在写代码时,当服务器有一个长度为10000的数据要发送给客户端时,一方面我可以通过设置缓冲区大小10000来实现,但是我应该不是好的办法,我想:应该由某种机制可以使得指定发送缓冲区为100,然后利用100次发送也应该可以成功!
但是怎么实现??我不知道。。请大虾帮忙....
而且客户端接受数据时,接受缓冲区的大小也应该利用相应的机制才能够有更好的通用性与效果,,如何解决??
谢谢!!

论坛徽章:
0
2 [报告]
发表于 2008-01-24 16:37 |只看该作者
弄个循环不就行了?

论坛徽章:
0
3 [报告]
发表于 2008-01-24 16:42 |只看该作者
但是,我感觉这种方法通用性不是很强。。
不知有没有其他的解决办法??
是不是涉及到所谓的窗口大小的问题??

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2008-01-24 16:51 |只看该作者
原帖由 DNS_WXC 于 2008-1-24 16:42 发表
但是,我感觉这种方法通用性不是很强。。
不知有没有其他的解决办法??
是不是涉及到所谓的窗口大小的问题??

怎么不强了。
你要是发送10G的数据过去,
是不是要开辟一个10G的缓冲区?

论坛徽章:
0
5 [报告]
发表于 2008-01-24 16:54 |只看该作者
原帖由 DNS_WXC 于 2008-1-24 16:42 发表
但是,我感觉这种方法通用性不是很强。。
不知有没有其他的解决办法??
是不是涉及到所谓的窗口大小的问题??

发送接收窗口是内核管理的,跟应用程序无关,不用管。

论坛徽章:
0
6 [报告]
发表于 2008-01-24 17:18 |只看该作者
一般都是这么做的,不用想偏门的方法了。

论坛徽章:
0
7 [报告]
发表于 2008-01-24 17:27 |只看该作者
一个循环什么解决不了呀!干嘛还要想其他乱七八糟的呢?能解决问题就可以了哦!呵呵……

论坛徽章:
0
8 [报告]
发表于 2008-01-24 19:41 |只看该作者
大家说的也是。。谢谢

论坛徽章:
0
9 [报告]
发表于 2008-01-27 14:38 |只看该作者
收发缓冲是可以管理的,调用setsockopt即可。如果设置超过64K(不包括64K)的收发缓冲,需要使能rfc1323(高性能tcp)。当然对于普通的应用,使用默认值就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP