【发布时间】:2014-04-23 14:52:44
【问题描述】:
我在下面有一个 sn-p - 我已经通过多种方式调整了我的 tv_usec,但我一直坐在 select() 循环中几乎正好 10 秒,无论 tv_usec 设置在什么位置。
char buffer[512];
fd_set readfds;
struct timeval tv;
tv.tv_usec = 50;
int rv = 1;
// clear the set ahead of time
FD_ZERO(&readfds);
// add our descriptors to the set
FD_SET(mySocket, &readfds);
// the n param for select()
int n = mySocket + 1;
while(rv != 0)
{
rv = select(n, &readfds, NULL, NULL, &tv);
if (rv == -1)
perror("select"); // error occurred in select()
bzero(buffer,512);
int n = recvfrom(mySocket,buffer,512,0,(struct sockaddr *)&server, &sockLen);
// do stuff...
}
【问题讨论】:
-
tv_sec 未初始化,将其初始化为 tv.tv_sec = 0