AF_UNIX套接字中的最大缓冲区长度

Don*_*van 4 c sockets

我想知道:当使用套接字(AF_UNIX)在C中编程时,在发送或接收套接字时是否有任何限制(以字节为单位)?

Wil*_*ill 6

您可以使用setsockopt(SO_SNDBUFSO_RCVBUF)更改每个套接字连接的读写缓冲区.

默认大小和最大大小取决于平台.

此外,如果您为每个读取提供更大的用户端缓冲区,例如recv.

如果你recv按顺序使用几个s,你可以通过连接读取无限量的字节,它只需要无限长.

  • 对于unix域套接字,SO_RCVBUF对Linux没有影响.但SO_SNDBUF可用于调整发送缓冲区,但套接字发送缓冲区仍受net.core.wmem_max值的约束.http://man7.org/linux/man-pages/man7/unix.7.html. (3认同)