关于AsyncSelect的触发事件问题
使用AsyncSelect编写C/S程序。
C中,WSAAsyncSelect设置FD_WRITE,FD_CONNECT;S中,设置FD_WRITE,FD_ACCEPT.在建立连接时,C中触发了FD_CONNECT,FD_WRITE;S中触发了FD_ACCEPT,FD_WRITE,同时有WSAEWOULDBLOCK.根据MSDN中对这FD_WRITE,FD_ACCEPT,FD_CONNECT的解释,是否可以这么认为:
建立连接时,触发FD_CONNECT不代表连接建立,而FD_ACCEPT,FD_WRITE则可以。
同时,在receive时,总是有WSAEWOULDBLOCK,但是触发了FD_READ,接收数据成功。是否可这么认为:
AsyncSelect中默认为非阻塞模式,调用recv()都会有WSAEWOULDBLOCK,只要有触发FD_READ则接收成功,不用管WSAEWOULDBLOCK。
/////////////////////////////////////////////////////////////////////////////////////