【发布时间】:2012-02-28 02:47:59
【问题描述】:
我想将 read() 与 ioctl() 一起使用,但想通过使用超时来控制读取应等待的时间。 关于如何做到这一点的任何想法?
目前我知道的是:
//CLIENT.cpp
struct timeval tv={1,0};
setsockopt( mysocket, SOL_SOCKET, SO_RCVTIMEO, (char *) &tv, sizeof(tv));
connect(mysocket, &sock_dest, sizeof(struct sockaddr));
len = read(mysocket, buffer, 10);
我尝试在服务器上使用 5 秒延迟,但没有超时...
【问题讨论】:
-
同意。顺便说一句,如果您关心
read需要多长时间,您可能也应该关心connect需要多长时间(如果超时,可能需要一段时间)。您可以在调用connect之前使套接字变为非阻塞,并通过select或poll进行处理。