select函数详解(select函数)

伊婉君
导读 大家好,乐天来为大家解答以下的问题,关于select函数详解,select函数这个很多人还不知道,现在让我们一起来看看吧!1、SOCKET s;fd_set

大家好,乐天来为大家解答以下的问题,关于select函数详解,select函数这个很多人还不知道,现在让我们一起来看看吧!

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上的信息 } }}。

本文分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!