当前位置:  技术问答>linux和unix

求助,询问:socket 设定网络缓冲区的问题(SO_SNDBUF)

    来源: 互联网  发布时间:2016-10-11

    本文导语:  Hi,All   小弟是Linux 网络编程的菜鸟,请教一个socket 发送缓冲区的问题如下:   socket 发送缓冲区设定我在网上查找资料是这样设定的:   int nSendBuf = 128*1024; //设置为128K    setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF,...

Hi,All
  小弟是Linux 网络编程的菜鸟,请教一个socket 发送缓冲区的问题如下:
  socket 发送缓冲区设定我在网上查找资料是这样设定的:
  int nSendBuf = 128*1024; //设置为128K 
  setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, ( const char* )&nSendBuf, sizeof( int ) );
请教:
 1.这个是设定总的缓冲区还是单独的每一个的socket 缓冲区?这个值是给正在listen 的server socket 设定还是要给连接的每一个socket fd 设定呢?
 2.如果按照每一个socket fd 都要设定,那每一个分给128K,假如有10000个用户同时在线,岂不是内存要分出去128000K = 1250M相当于1GB 多的内存给socket 用?这样的理解是否正确?
 3.我在网上查找的资料,有时候数据量大,是可以写程序动态分配更多的缓冲区给socket 用。是否可以提供点linux C 的源代码来参考一下。

感谢
 
  

|
对于服务端来说,设置listen fd的缓冲区大小就可以了,会被后续建立的连接继承

|

我觉得LZ描述的不够清楚。请问前台是什么,是指那100个客户端吗?

如果要向大量的客户发送相同的信息,你可以考虑用udp吗?可以使用组播吗?

TCP的服务端是每个socket拥有自己的SNDBUF,这里的socket是指accept()返回的那个,其SNDBUF大小从listen_socket继承而来,各自独立。总的BUF大小,好像是不能设定的。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • 技术文章 iis7站长之家
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3