c - Unix 域套接字 (AF_UNIX) 中数据报队列长度的默认大小是多少?它是可配置的吗?

标签 c sockets unix linux-kernel datagram

我知道数据报队列长度的最大长度可以使用 “cat/proc/sys/net/unix/max_dgram_qlen”。

我想知道如何找到在启动时设置的默认值(例如发送缓冲区大小的/proc/sys/net/core/wmem_default)。

是否可以增加 max_dgram_qlen 的值?相同的上限是多少?

我的内核版本是2.6.27.7。我是 Unix 域套接字编程 (AF_UNIX) 的新手。

提前感谢您提出任何意见/解决方案!

最佳答案

之前的回答/评论无法理解 OP 谈论的是数据报 (max_dram_qlen) 中的最大队列长度,而不是字节。操作系统提供两种尺寸的设置。

您可以使用以下命令设置max_dgram_qlen:

sysctl net.unix.max_dgram_qlen=128

您可能需要使用 sudo 运行,您可能还需要在 max_dgram_qlen=128 周围加上双引号,具体取决于您的 shell。

另请参阅 What's the practical limit on the size of single packet transmitted over domain socket? .

关于c - Unix 域套接字 (AF_UNIX) 中数据报队列长度的默认大小是多少?它是可配置的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21448960/

相关文章:

c - 在链表末尾插入一个节点,.exe 崩溃

c - C 中的 BST 程序

c - 错误 `./px' : free(): invalid next size (normal)Aborted (core dumped)

c - 如何在 UNIX 上将 PID 写入文件

c - 为什么 memcmp() 相差 1 时返回 256?

报警时多次调用无限循环代码

c - 在帕特里夏/基数树上插入单词时遇到问题

c - 你如何处理从 getopt 中获取参数的顺序?

C:在超时的阻塞套接字上等待 n 个字符

不支持 C++ 绑定(bind) UDP 套接字地址系列