文件名称:IO完成端口简单案例,很简单,以看就会
文件大小:56KB
文件格式:RAR
更新时间:2012-04-23 16:19:46
完成端口
一个很简单的完成端口案例,大家可以一起探讨。这里配合客户端测试。在TCP的协议下,完成端口的模型基本上是以下这种模式: 主线程 | CreateIoCompletionPort | CreateThread ————————— 完成端口线程 | | |---- While(TRUE) While(TRUE)----------| | | | | | Accept |------GetQueuedCompletionStatus() | | | | | | | CreateIoCompletionPort | WsaRev/WsaSend-------| | | | | |----WsaRev/WsaSend |------------ Windows系统 | | Windows系统 --------- 主线程主要负责接受客户端的连接,在侦听到客户端的连接以后,将异步接受数据,由操作系统通知 GetQueuedCompletionStatus函数获取操作。在这里Accpet和GetQueuedCompletionStatus函数都是处于阻塞模式。这种TCP模式的完成端口比较容易理解,但是在UDP协议下的实现就比较难于考虑,他没有Accept的阻塞,主线程比较难于处理。如果没有这个主线程,WsaRecfrom函数又不知道放在哪里才能够通知GetQueuedCompletionStatus得到相应的操作方式。因此,希望大家能够帮我考虑一下,这种UDP下的完成端口该怎么安排他的结构?
【文件预览】:
TestClt
----res()
--------TestClt.rc2(399B)
--------TestClt.ico(1KB)
----TestClt.clw(1KB)
----TestClt.rc(5KB)
----TestClt.aps(35KB)
----TestClt.dsw(539B)
----TestClt.ncb(49KB)
----TestClt.opt(48KB)
----TestClt.plg(248B)
----StdAfx.cpp(209B)
----resource.h(731B)
----TestCltDlg.h(1KB)
----StdAfx.h(1KB)
----TestClt.dsp(4KB)
----TestCltDlg.cpp(5KB)
----Debug()
----TestClt.h(1KB)
----TestClt.cpp(2KB)
----ReadMe.txt(4KB)
Test.rar