linux setsockopt 设置接收超时
时间: 2023-11-22 22:06:35 浏览: 357
linux网络编程实例详解
在 Linux 中,可以使用 setsockopt 函数设置套接字选项。要设置接收超时,需要使用 SO_RCVTIMEO 选项。
下面是一个示例代码片段,演示如何使用 setsockopt 设置接收超时:
```
struct timeval timeout;
timeout.tv_sec = 5; // 设置超时时间为 5 秒
timeout.tv_usec = 0;
if (setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)) < 0) {
perror("setsockopt failed");
exit(EXIT_FAILURE);
}
// 接收数据
recv(sockfd, buffer, sizeof(buffer), 0);
```
在上面的代码中,我们首先创建了一个 timeval 结构体,用来设置超时时间。然后,使用 setsockopt 函数将 SO_RCVTIMEO 选项设置为这个时间。最后,我们可以通过 recv 函数接收数据,如果超时时间到达而没有数据到达,recv 函数将会返回一个错误。
阅读全文