【Linux】正确使用SO_RCVTIMEO和SO_SNDTIMEO套接口选项

2019-07-13 09:08发布

一、 SO_RCVTIMEO和SO_SNDTIMEO套接口选项说明


     1.  这两个选项给套接字的接收和发送设置一个超时值。注意,访问函数的参数是指向timeval结构的指针。
     2.  通过设置值为0秒和0微妙禁止超时。缺省情况下,两个超时都是禁止的。

二、 SO_RCVTIMEO的正确使用方法


1.  获取接收的超时值 socklen_t optlen = sizeof(struct timeval); struct timeval tv; tv.tv_sec = 10; tv.tv_usec = 0; getsockopt(socketfd, SOL_SOCKET,SO_SNDTIMEO, &tv, &optlen);
2. 设置接收的超时值 socklen_t optlen = sizeof(struct timeval); struct timeval tv; tv.tv_sec = 10800; tv.tv_usec = 0; setsockopt(socketfd, SOL_SOCKET, SO_RCVTIMEO, &tv, optlen);