易截截图软件、单文件、免安装、纯绿色、仅160KB

linux下怎么设置udp接收缓存最大值?

if(setsockopt(TUdpRec_sUDP,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int)) == 0)
printf( "set senbufsize = %d\n", nRecvBuf);
if(getsockopt(TUdpRec_sUDP, SOL_SOCKET, SO_RCVBUF, (char *)&nRecvBuf, &nBufSize) == 0)
printf( "get senbufsize = %d\n", nRecvBuf);

使用这样的方法设置udp缓冲,最大就只能到256K,能不能突破这个限制?
怎么设置??
为什么要设置那么大的缓冲区 ?

为什么不把包分成几个来发?

一次发太大的包很容易失败。

现在只是从网络收UDP数据(1024包大小),写到硬盘。
缓冲偶尔会溢出,

还有  用netsata命令看信息

其中:
udp包接收错误,还有最后的 接收缓冲错误
数都很大. 

什么情况会造成这样的原因??

1、可以突破这个限制,但是首先要增大Linux操作系统的接受缓冲区限制。
2、UDP接收错误,原因:(1)网络条件较差,比如同时有大量的别的数据包。
                      (2)由于你写硬盘处理得比接收的慢,缓冲区满以后,有的数据包被抛弃了。


比如运行程序前,先执行如下命令:
sysctl -w net.core.rmem_max=13238272 net.core.rmem_default=13238272



相关问答:

有关linux安装脚本kickstart的编写

我之前制作的linux自动安装iso已经成功了,现在想对其进行一些定制修改,比如,更改grub图片等。
我在ks.cfg的%post段里面是这样写的:
%post --nochroot
# Move the contents of the tar into their new locati ......

硬盘安装RedFlag LINUX 后还可以安装WINDOWS吗

是这样的,近段在WINDOWS上上网时总是有病毒,我不习惯装杀毒软件,以前也一直没装过,觉得麻烦。然后就硬盘安装了LINUX,还好,可以上网,可以查东西。但是我是在WINDOWS下做软件开发的,还想装上WINDOWS,不知道能 ......

linux下安装了jdk1.4但版本还是1.3.1

linux下安装了jdk1.4但版本还是1.3.1,又安装完1.5也同样版本还是1.3.1  有去配置.bashrc文件内容如下    
      set JAVA_HOME=/usr/share/jdk1.5.0_05
      export JAVA_HOME
   ......

linux下怎么设置udp接收缓存最大值?

if(setsockopt(TUdpRec_sUDP,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int)) == 0)
printf( "set senbufsize = %d\n", nRecvBuf);
if(getsockopt(TUdpRec_sUDP, SOL_SOCKET, SO_RC ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号