如何在 C 中设置 UNIX 套接字文件描述符的套接字缓冲区大小? 我知道setsockopt可能是涉及的系统调用...... 谁能给出一个如何使用它的例子,我发现的例子没有解释如何设置缓冲区大小?
在 Ubuntu 14.04 Linux 上查看
man 7 socket
,具体查看 SO_RCVBUF
和 SO_SNDBUF
。
更具体地说:
#include <socket.h>
int fd = socket(AF_INET, SOCK_STREAM, 0);
int sz = 1024;
setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &sz, sizeof(sz)); // Send buffer 1K
setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &sz, sizeof(sz)); // Receive buffer 1K
不要忘记检查
setsockopt()
是否在成功时返回 0。否则,errno
会告诉你出了什么问题。