setsockopt()函数用于设置套接字选项。它的原型如下:
```c
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
```
参数说明:
- sockfd:需要设置选项的套接字描述符。
- level:选项的协议层级。可以取以下值:
- SOL_SOCKET:通用套接字选项。
- IPPROTO_IP:IP协议套接字选项。
- IPPROTO_TCP:TCP协议套接字选项。
- IPPROTO_IPV6:IPv6协议套接字选项。
- optname:选项名称,具体取值依赖于level参数的值。常用的选项有:
- SO_REUSEADDR:允许重用本地地址。
- SO_KEEPALIVE:启用保活机制。
- TCP_NODELAY:禁用Nagle算法。
- IP_TTL:设置IP包的生存时间。
- IPV6_V6ONLY:限制套接字只能用于IPv6通信。
- optval:选项的值,不同的选项对应的值的类型可能不同,需要根据具体选项进行类型转换。
- optlen:选项值的长度。
setsockopt()函数可以用来设置各种不同的选项,具体的选项名称和取值可以参考相关文档。