转自:http://blog.csdn.net/teleinfor/article/details/5933203
1. FD_READ事件
l 调用WSAEventSelect函数时,如果当前有数据可读
l 有数据到达时,并且没有发送过FD_READ事件
l 调用recv/recvfrom函数后,仍然有数据可读时
2. RD_WRITE事件
l 调用WSAEventSelect函数时,如果调用能够发送数据时
l 调用connect()/accept()后,连接已经建立时
l 调用send()/sendto()函数后,返回WSAEWOULDBLOCK错误后,再次调用send()/sendto()函数可能成功时
3. FD_ACCEPT事件
l 调用WSAEventSelect函数时,有连接请求需要建立
l 连接请求到达,未有发送FD_ACCEPT事件
l 调用accept()函数后,还有连接请求需要建立
4. FD_CONNECT事件
l 调用WSAEventSelect函数时,一个连接已经建立完成
l 调用connect()函数后,建立连接完成时
5. FD_CLOSE事件
l 调用WSAEventSelect函数时,socket连接关闭
l 从容关闭,没有数据可读
l 执行shutdown()从容关闭,对方应答FIN后,无数据需要读取
l 对方关闭连接,WSAECONNRESET错误发生