如何在 Ubuntu 中增加客户端 UDP 接收缓冲区大小

如何在 Ubuntu 中增加客户端 UDP 接收缓冲区大小

我有一台计算机,它通过物理电缆(没有路由器或交换机)通过 UDP 与相机通信。相机充当 UDP 服务器,计算机充当客户端。在逐行传输图像时,系统偶尔会挂起。我的 Java 软件等待图像的一行,但从未收到,我相信这可能是由接收缓冲区溢出引起的。

我尝试在 /etc/sysctl.conf 中增加接收缓冲区的最大大小

sysctl -w net.core.rmem 1000000

我的程序请求 7000000 字节,但运行时报告只收到 212992 字节。

当我尝试询问操作系统最小、默认和最大尺寸时:

sysctl -a | grep usb 
net.ipv4.udp mem 185535    247780  371670

如何获得更大的缓冲区? sysctl 是否正在被读取? TIA

答案1

/etc/sysctl.conf 的编辑有错误,它应该如下所示,并且我还应该增加默认值:

net.core.rmem_max=1000000
net.core.rmem_default=1000000

我不知道为什么当我手动输入时下面的内容不起作用但无论如何我希望在启动时设置这些值。

sysctl -w net.core.rmem 1000000

相关内容