1.Windows套接字在两种模式下执行I/0操作:阻塞模式和非阻塞模式。在阻塞模式下,在I/0 操作完成之前,执行操作的Windows函数会一直等待下去,不会立即返回(将控制权交换给主程序),如果这时候网络上没有数据,那么函数将会一直等待下去,该函数将会阻塞函数的执行,从而导致调用线程的暂停运行。在非阻塞模式下,函数无论如何都会立即返回,系统会采用某种机制将函数的操作结果通知给线程,后者根据这个通知信息可以判断该操作是否成功。
2.Windows Socket为了支持Windows消息驱动机制,它对网络事件采用基于消息的异步存取策略。
3.Windos Socket的异步选择函数WSAAsyncSelect提供了对网络事件的选择,当使用这个函数所登记过的网络事件发生时,Windows应用程序的窗口函数将收到一个消息,消息指示了网络事件的发生。例如:如果登记的一个网络读取事件FD_READ,一旦有数据到来,就会触发这个FD_READ这个事件的发生,操作系统就会通知一个消息来通知调用线程,后者就会在相应的消息处理函数当中去接受这个数据。