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

一、 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);


你可能感兴趣的:(linux)