accept后,addtoclientlist,然后与iocp绑定,
再调用wsarecv后立即返回,继续accept.那么workthread中调用GetQueuedCompletionStatus是怎么判断他已经完成wsarecv并返回结果的?
再调用wsarecv后立即返回,继续accept.那么workthread中调用GetQueuedCompletionStatus是怎么判断他已经完成wsarecv并返回结果的?
解决方案 »
- 管理员……请先不要移动[感谢帖]** 结贴时会移动过去……不要让人说偶不诚信哈!
- 请问VC2005的新建工程中“使用Unicode库”的属性能否在工程中去掉
- 在程序中如何控制Media Player的音量?
- DBGrid 在VC++如何使用
- 更换了内存条或其他硬件设备后﹐Windows2000是否就需要重装﹖答案正确者立即给分﹗
- 菜鸟发问,(在线给分,来者有之)
- 学网络编程,从何处下手?
- 谁能为我详细讲解一下关于头文件,库,dll的内在联系--
- 怎样改变MFC程序的左上角图标和应用程序图标.
- 关于FindWindow和GetClassName求解释
- 编常小用软件.学什么好 就是很小的实用的软件.很简单的那种
- 空域滤波的算法
具体的细节 你得问MS的人了。
我看了一下Sonic.net模拟的IOCP类,他是这样实现的.
把object 放入一个队列,然后出列,调用wsarecv等函数进行操作,完成后再放回队列.这个过程好像 和win32 的iocp实现过程类似accept->得到socket->和iocp绑定(放入队列)->调用wsarecv,(从队列中取出socket,接着收到数据后放回队列)
工作线程getqueuecomplestatus得到recv的结果(从队列中得到成功recv后的socket)不知我有没有理解错?
我看了一下Sonic.net模拟的IOCP类,他是这样实现的.
把object 放入一个队列,然后出列,调用wsarecv等函数进行操作,完成后再放回队列.这个过程好像 和win32 的iocp实现过程类似accept->得到socket->和iocp绑定(放入队列)->调用wsarecv,(从队列中取出socket,接着收到数据后放回队列)
工作线程getqueuecomplestatus得到recv的结果(从队列中得到成功recv后的socket)不知我有没有理解错?