setsockopt

c语言setsockopt函数怎么使用

小亿
106
2023-07-07 10:08:56
栏目: 编程语言

setsockopt函数用于设置套接字选项。它的原型如下:

int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);

参数说明:

示例代码如下:

#include <sys/types.h>
#include <sys/socket.h>
int main() {
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
perror("socket");
return -1;
}
// 设置SO_REUSEADDR选项
int reuse = 1;
if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) == -1) {
perror("setsockopt");
return -1;
}
// 设置SO_KEEPALIVE选项
int keepalive = 1;
if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &keepalive, sizeof(keepalive)) == -1) {
perror("setsockopt");
return -1;
}
// 设置TCP_NODELAY选项
int nodelay = 1;
if (setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &nodelay, sizeof(nodelay)) == -1) {
perror("setsockopt");
return -1;
}
// 其他操作...
return 0;
}

上述代码创建了一个TCP套接字,并分别设置了SO_REUSEADDR、SO_KEEPALIVE和TCP_NODELAY三个选项。如果设置选项失败,会输出错误信息并返回-1。

0
看了该问题的人还看了