2012-01-27 93 views
2

我设置一个套接字选项是这样的:BSD套接字和超时iOS中

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插槽timesout预期。这是预期的行为?任何帮助理解这一点,将不胜感激。

回答

3

从官方POSIX.1 manual page

默认此选项是零值,这表明一个接收操作不会超时。

因此,如果您将自己的超时设置为零,它将与没有超时的默认设置相同。