当前位置: 技术问答>linux和unix
AIX 5.3下select超时不返回的问题
来源: 互联网 发布时间:2016-06-02
本文导语: 在AIX 5.3下发现使用select设定超时后不返回,但只要有数据到达时select先超时返回,再次调用则返回可读fd, fd_set read_set; struct timeval time_2_wait; while(1) { FD_ZERO(&read_set); FD_SET...
在AIX 5.3下发现使用select设定超时后不返回,但只要有数据到达时select先超时返回,再次调用则返回可读fd,
fd_set read_set;
struct timeval time_2_wait;
while(1)
{
FD_ZERO(&read_set);
FD_SET(s,&read_set);
time_2_wait.tv_sec = 60;
time_2_wait.tv_usec = 0;
reval = select(s+1,&read_set,NULL,NULL,&time_2_wait);
if(reval == -1 || reval == 0)
{
sprintf(Tmp, "Time-Out return.select ret is %dn", reval);
printf(Tmp);
continue;
}
printf("recv...n");
......
}
监控输出发现在没有数据到达时select一直没返回,哪位遇到过类似的问题吗
代码有没有遇到过这种问题?
fd_set read_set;
struct timeval time_2_wait;
while(1)
{
FD_ZERO(&read_set);
FD_SET(s,&read_set);
time_2_wait.tv_sec = 60;
time_2_wait.tv_usec = 0;
reval = select(s+1,&read_set,NULL,NULL,&time_2_wait);
if(reval == -1 || reval == 0)
{
sprintf(Tmp, "Time-Out return.select ret is %dn", reval);
printf(Tmp);
continue;
}
printf("recv...n");
......
}
监控输出发现在没有数据到达时select一直没返回,哪位遇到过类似的问题吗
代码有没有遇到过这种问题?
|