【报资讯】select函数堵塞原因_select函数
发布时间:2023-04-19 09:30:11
来源:互联网
【资料图】
1、SOCKET s;fd_set fdread;int ret;// 在这里省略了建立socket和accept的调用// 这个while循环对建立起来的socket进行IOwhile(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。
2、最后一个参数是select的超时等待时间 == SOCKET_ERROR) { // 到这里表示出现了错误 } if (ret > 0) {// 到这里如果你只accept了一个socket,那么ret==1,如果你和多个socket进行io。
3、ret的值将大于1// 现在你要做的就是检查s是否在read set里 if (FD_ISSET(s, &fdread)) // 如果是这样 { // socket s现在处于可读状态,之后你可以调用read来获取s上的信息 } }}。
本文到此分享完毕,希望对大家有所帮助。
标签: