永发信息网

select()函数timeout

答案:2  悬赏:40  手机版
解决时间 2021-01-31 19:36
为什么我select()设置了timeout为10秒
但是
if(select()==0)
{
printf("timeout\n");
}
还是不停打印呢,不是要等待10S才打印一次吗

time_out.tv_sec = 10;
time_out.tv_usec = 0;
FD_ZERO(&read_fds);
FD_SET(serv_sd, &read_fds);
result = select(serv_sd+1, &read_fds, NULL, NULL, &time_out);
if (result == -1)
{
continue;
}
else if(result == 0)
{
printf("timeout\n");
continue;
}
最佳答案
发个完整的出来看看·······
全部回答
socket s; fd_set fdread; int ret; // 在这里省略了建立socket和accept的调用 // 这个while循环对建立起来的socket进行io while(true) { // select之前要清空read set fd_zero(&fdread); // 把s加入到read set里 fd_set(s, &fdread); if ((ret = select(0, &fdread, null, null, null)) // 第一个参数总是0,后面分别是read,write和except set // 他们之中的任何一个都可以是0,最后一个参数是select的超时等待时间 == socket_error) { // 到这里表示出现了错误 } if (ret > 0) { // 到这里如果你只accept了一个socket,那么ret==1,如果你和多个socket进行io,ret的值将大于1 // 现在你要做的就是检查s是否在read set里 if (fd_isset(s, &fdread)) // 如果是这样 { // socket s现在处于可读状态,之后你可以调用read来获取s上的信息 } } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
聚兴物流(五一路与271省道交叉口南100米聚兴
劳动合同己到期,但己过一个月,现在公司要与我
宝宝5个多月了,他兴奋或激动时 手颤抖是怎么
绿地喷灌工程的工程量一般怎么计算
为什么农历8月18日是最好的观潮日?
better than revenge是什么意思
推荐本比较好的养生的书
小鹏的父亲因为工作繁忙经常拿他撒气,小鹏的
妈妈刚才又
家中自来水小,可否按装电热水器
大众朗逸01176故障码是什么不行
钢琴 手指盖触琴 怎么办
唐朝的国都是被谁灭了
收入未开票要确认收入,可是后期要开发票又怎
B型血男生会对喜欢的女生告白吗?或者会主动
推荐资讯
溢嘉物流地址在什么地方,想过去办事
拍拍丸效果咋样使用了会不会过敏
【一次意外的收获】作文:一次意外的收获500字
夏天的早晨经常可以看见草叶上有露珠,露珠的
学校社会工作者小张运用培养学生抗逆力方法为
1、当二氧化碳通入紫色石蕊试液中,试液变----
英语中的thinking,thought有何区别
誓节镇石鼓小学地址好找么,我有些事要过去
听说万州的天仙湖黄金海岸现在千的合同层管局
魔兽世界云端降龙骑士团崇拜送的龙,是不是自
上海宝山区到黄浦区坐几线地铁
大金国的国都在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?