select深入一点了

WSAEWOULDBLOCK  操作没有完成 正在执行中。。。。。。。。

待FD_CONNECT消息

nRead == SOCKET_ERROR || nRead == 0
 getlasterr == WSAEWOULDBLOCK   否则都是为断开

异步recv每次 接受的 字符不一定。 有可能比较少。。。没接受全

 FD_ZERO(wfds); 清除状态
 FD_SET(sock, wfds);设置关联

FD_ISSET(sock, wfds)  是否有数据



异步send也是不完全的。 多次send才可以发送完毕。  buf+sendlen

FD_SET fd = {1, hSocket}; 设置关联的 sock


 ULONG NonBlock = 1;
 ioctlsocket(sockListen, FIONBIO, &NonBlock);
设置非阻塞模式


select(0, &fdRead, &fdWrite, NULL, NULL)  接受 这个是阻塞的


FD_ZERO(*set)  //清空fd_set*
FD_CLR(s,*set)  //从set中删除s套接字
FD_ISSET(s,*set) //检查s是否是set集合的一名成员,如果是返回TRUE
FD_SET(s,*set)   //设置套接字s加入集合set中

你可能感兴趣的:(select深入一点了)