【发布时间】:2014-05-11 21:24:29
【问题描述】:
我正在做这样的事情
val = select(max_fd+1,&readfd,0,0,0);
if(val >=1){
printf("I have got some value");
}
我的代码无缘无故脱离了选择。它没有收到任何数据包。在 10 次运行中,我在等待选择的地方运行 1 次。休息一下就好了。
已设置套接字以接收 ICMP 数据包。在 1 次运行中,它运行良好。为什么这是 9 次?
【问题讨论】:
-
您使用的是什么平台和选择的实现?
-
我们不知道这个原因。检查
errno。 -
这里没有错误。它脱离了选择,但是当我使用 FD_ISSET 遍历 FD 时,我什么也得不到。我仔细检查了 FD 是否设置正确。
-
我在linux系统上运行,我不明白你所说的select实现是什么意思
标签: c sockets select-function