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中
待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中