完成端口模型简介(zz)

转载 2006年05月26日 02:34:00

抽象出一个完成端口大概的处理流程:
1:创建一个完成端口。
2:创建一个线程A。
3:A线程循环调用GetQueuedCompletionStatus()函数来得到IO操作结果,这个函数是个阻塞函数。
4:主线程循环里调用accept等待客户端连接上来。 
5:主线程里accept返回新连接建立以后,把这个新的套接字句柄用CreateIoCompletionPort关联到完成端口,然后发出一个异步的WSASend或者WSARecv调用,因为是异步函数,WSASend/WSARecv会马上返回,实际的发送或者接收数据的操作由WINDOWS系统去做。
6:主线程继续下一次循环,阻塞在accept这里等待客户端连接。
7:WINDOWS系统完成WSASend或者WSArecv的操作,把结果发到完成端口。
8:A线程里的GetQueuedCompletionStatus()马上返回,并从完成端口取得刚完成的WSASend/WSARecv的结果。
9:在A线程里对这些数据进行处理(如果处理过程很耗时,需要新开线程处理),然后接着发出WSASend/WSARecv,并继续下一次循环阻塞在GetQueuedCompletionStatus()这里。

归根到底概括完成端口模型一句话:
我们不停地发出异步的WSASend/WSARecv IO操作,具体的IO处理过程由WINDOWS系统完成,WINDOWS系统完成实际的IO处理后,把结果送到完成端口上(如果有多个IO都完成了,那么就在完成端口那里排成一个队列)。我们在另外一个线程里从完成端口不断地取出IO操作结果,然后根据需要再发出WSASend/WSARecv IO操作。


相关文章推荐

完成端口模型服务端

#include#include#pragma comment(lib,"WS2_32.lib")using namespace std;const int ServerPort=4399;const...

用C++实现HTTP服务器 - 处理完成端口模型(IOCP)的超时问题

如何处理完成端口模型(IOCP)的超时问题. 作者: 阙荣文  2011/7/12 前言 完成端口(IOCP)是所有Windows I/O模型中最复杂,也是性能最好的一种.在关于IOCP的编程中...
  • kaylc
  • kaylc
  • 2011-07-31 11:32
  • 2180

Socket I/O模型之完成端口(completion port)

“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一 的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上...

完成端口模型

完成端口模型

完成端口模型

参考博文(感觉写的真的太好了!)—— http://blog.csdn.net/piggyxp/article/details/6922277 完成端口(Completion Port)是一种在...

Socket I/O模型之完成端口(completion port)

Socket I/O模型之完成端口(completion port) C++代码 1. // write by larry 2. // 2009-8-20 3. // This is a se...

手把手教你玩转SOCKET模型:完成端口(Completion Port)详解

手把手教你玩转SOCKET模型:完成端口(Completion Port)详解 2014-11-14 06:28 ⁄ 工业·编程 ⁄ 共 29514字 ⁄ 字号 小 中 大 ⁄ 评论 7...

WinSock完成端口I/O模型

关于重叠I/O,参考《WinSock重叠I/O模型》;关于完成端口的概念及内部机制,参考译文《深度探索I/O完成端口》。 完成端口对象取代了WSAAsyncSelect中的消息驱动和WSAEvent...

Socket I/O模型之完成端口(completion port)

“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和W...

Socket I/O模型之完成端口(completion port)

“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和W...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)