Windows套接字I/O模型(5)-完成端口模型
一、写在前面前面的文章已经介绍了套接字 I/O 的同步模型、WSAAsyncSelect模型、WSAEventSelect模型,到目前为止套接字I/O还剩下2个模型没有介绍:重叠模型,完成端口模型。 如果程序对性能和并发要求不高...
一、写在前面前面的文章已经介绍了套接字 I/O 的同步模型、WSAAsyncSelect模型、WSAEventSelect模型,到目前为止套接字I/O还剩下2个模型没有介绍:重叠模型,完成端口模型。 如果程序对性能和并发要求不高...
一、WSAEventSelect模型介绍WSAEventSelect模型和WSAAsyncSelect模型类似,但WSAEventSelect模型允许应用程序在一个或多个套接字上面接收以事件为基础的网络事件通知。该模型和WSAAsyncSelect模型的最主要的区别在于网络事件是由事件对象句柄完成的,而不是通过窗口消息完成的。
一、WSAAsyncSelect模型介绍利用WSAAsyncSelect模型结合windows窗口消息循环,应用程序可以在一个套接字上接收以Windows消息为基础的网络事件通知。要想使用WSAAsyncSelect模型,首先必须创建一个Windows窗口,并为该窗口提供一个窗口过程支持函数。
一、Select模型介绍套接字Select模型的中心思想是利用select函数实现对I/O的管理。利用select函数来判断套接字(一个或多个)上是否存在数据,或者能否向套接字写入数据。它也是同步的,也会阻塞。但和阻塞模型不同的是,Select模型可以同时管理多个Socket。
套接字I/O的阻塞模型是最常见的网络模型,也是在网络编程中最早接触的一个模型。因为它是阻塞的,所以我们一般都会结合线程一起使用,如将accept,recv等操作放到单独的线程,防止程序的主线程被阻塞住。