IOCP procedure
2016-04-27 11:20:00 1 举报
IOCP(I/O完成端口)是一种高性能的I/O模型,用于处理大量的并发I/O操作。它通过创建一个或多个完成端口来管理I/O请求和响应。当应用程序发起一个I/O请求时,它将被分派到一个未完成的端口中,然后由操作系统异步地完成该请求。一旦I/O操作完成,操作系统将通知应用程序,并将结果返回给应用程序。 使用IOCP可以提高应用程序的性能,因为它允许多个线程同时处理多个I/O请求,而不需要为每个请求创建一个线程。此外,IOCP还可以提供更好的错误处理和重试机制,以确保I/O操作的成功完成。
作者其他创作
大纲/内容
是
用户是否停止
Accept操作_DoAccept()
结束
将ListenSocket和完成端口绑定
判断网络操作的类型
若通信结束,通知Worker线程们退出PostQueuedCompletionStatus
服务器端初始化_Start()
将新连入的Socket和完成端口绑定
开始
否
投递多个AcceptEx异步请求 _PostAccept()
初试化ListenSocket_initListenSocket()
建立、配置完成端口_initIOCP()
Recv操作_DoRecv()
检查完成端口的状态GetQueuedCompletionStatus
初始化Socket库_LoadSocketLib()
处理接收到的消息dealMsg()
根据CPU核心数,建立一定数目的Worker线程,用于接收网络消息_WorkerThread()
在新连入的Socket上投递第一个WSARecv请求 _PostRecv()
在刚处理过的Socket上投递下一个WSARecv请求 _PostRecv()
在ListenSocket上投递下一个AcceptEx请求_PostAccept()
0 条评论
下一页