我设置了这样的套接字选项:
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 0;
if (setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) == -1) {
perror("setsockopt");
exit(1);
}
当我这样做时,套接字会在recv调用时永久阻塞,但是当我将tv_usec设置为1时,套接字超时就像预期的那样。这是预期的行为吗?理解这一点的任何帮助将不胜感激。