在 Linux 中,setsockopt()
函数用于设置套接字选项。要设置网络参数,您需要根据所需的参数选择相应的选项和级别。以下是一些常见的网络参数及其设置方法:
int sockfd = socket(AF_INET, SOCK_STREAM, 0); // 创建一个 TCP 套接字
int result = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); // 允许地址重用
int rcvbuf_size = 4096; // 4 KB
result = setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &rcvbuf_size, sizeof(rcvbuf_size));
int sndbuf_size = 4096; // 4 KB
result = setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &sndbuf_size, sizeof(sndbuf_size));
struct timeval tv;
tv.tv_sec = 5; // 5 秒
tv.tv_usec = 0;
result = setsockopt(sockfd, IPPROTO_TCP, TCP_RCVTIMEO, (char *)&tv, sizeof(tv));
struct timeval tv;
tv.tv_sec = 5; // 5 秒
tv.tv_usec = 0;
result = setsockopt(sockfd, IPPROTO_TCP, TCP_SNDTIMEO, (char *)&tv, sizeof(tv));
int result = setsockopt(sockfd, IPPROTO_IP, IP_ROUTE_TABLE, &rt_table, sizeof(rt_table));
请注意,上述示例中的参数值和选项可能因操作系统和网络协议的不同而有所变化。在设置网络参数时,请确保查阅相应操作系统和网络协议的文档以获取正确的选项和级别。