在Linux下,setsockopt
函数用于设置套接字选项。其用法如下:
#include#include int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
参数解释如下:
sockfd
:套接字文件描述符。level
:选项的协议层。对于套接字选项,通常为SOL_SOCKET
。optname
:选项名称。optval
:指向选项值的指针。optlen
:选项值的长度。
setsockopt
函数用于设置套接字选项的值。常用的选项名称包括:
SO_REUSEADDR
:允许重用本地地址。SO_KEEPALIVE
:启用TCP的keepalive功能。SO_RCVBUF
:设置接收缓冲区大小。SO_SNDBUF
:设置发送缓冲区大小。SO_ERROR
:获取套接字的错误状态。
示例代码如下:
#include#include #include int main() { int sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) { perror("socket"); return 1; } int reuse = 1; if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) < 0) { perror("setsockopt"); return 1; } // 其他操作 close(sockfd); return 0; }
上述代码创建了一个套接字并设置了SO_REUSEADDR
选项为1,允许地址重用。