重叠模型之完成例程
来源:互联网 发布:mac 文件路径 编辑:程序博客网 时间:2024/04/29 07:08
WSAWaitForMultipleEvents Function
Parameters
fAlertable
A value that specifies whether the thread is placed in an alertable wait state so the system can execute I/O completion routines. If TRUE, the thread is placed in an altertable wait state and WSAWaitForMultipleEvents can return when the system executes an I/O completion routine. In this case, WSA_WAIT_IO_COMPLETION is returned and the event that was being waited on is not signaled yet. The application must call the WSAWaitForMultipleEvents function again. If FALSE, the thread is not placed in an altertable wait state and I/O completion routines are not executed.
完成例程的讲解比较少~尤其是调用的函数到底是谁?有没有又开了个线程。
参数说明(上面的说明说的很清楚~)
和
DWORD curThreadId = GetCurrentThreadId();
都可以知道是没有,但是具体是怎样运行的那?
单步一下就知道了,再加个Sleep,更清晰了~
CODE:
while(true)
{
//step 5:
DWORD Index = WSAWaitForMultipleEvents(1, EventArray, FALSE, 1000, TRUE);
//step 6:
if( Index == WSA_IO_INCOMPLETE || Index == WSA_WAIT_TIMEOUT )
{
Sleep(30000);
DWORD curThreadId = GetCurrentThreadId();
printf("IO_INCOMPLETE waitEvent Thread Id is %d/n", curThreadId);
int i = 1;
}
else if(Index == WSA_WAIT_IO_COMPLETION)
{
DWORD curThreadId = GetCurrentThreadId();
printf("IO_COMPLETE waitEvent Thread Id is %d/n", curThreadId);
}
}
到执行WSAWaitForMultipleEvents的时候,先去看有无完成事件,如果完成了就去执行我们wsarecv时候注册的函数,然后WSAWaitForMultipleEvents返回WSA_WAIT_IO_COMPLETION
上面的英文说的也很清楚~仔细看看吧~
- 重叠模型之完成例程
- 重叠IO模型之完成例程示例
- 网络编程五种IO模型之重叠IO模型-完成例程
- 重叠I/O之完成例程
- Socket I/O模型之重叠I/O(overlapped I/O)--完成例程方式
- WinSock IO模型四: 重叠I/O (完成例程)
- 模型设计与实践---(七)重叠IO ,完成例程
- 基于完成例程的重叠I/O网络模型
- 重叠IO之完成例程的实现方法
- 【网络编程】之十一、重叠IO Overlapped IO 完成例程
- 【网络编程】之十一、重叠IO Overlapped IO 完成例程
- 重叠I/O完成例程模型如何同时投递WSARecv和WSASend
- Chapter10-IO 重叠IO 完成例程
- 关于重叠io完成例程中的sleepEx()
- SOCKET编程进阶之Overlapped I/O完成例程模型
- SOCKET编程进阶之Overlapped I/O完成例程模型
- SOCKET编程进阶之Overlapped IO完成例程模型
- SOCKET编程进阶之Overlapped IO完成例程模型
- JVM 那点事
- 脱机工作
- Js获取checkboxlist所选中的值
- 值类型与引用类型初窥
- Ext 自定义iconCls
- 重叠模型之完成例程
- 【转】验证码生成
- java生成验证码
- 在网页中插入media player,适用于wma,也适用于asf
- 基于CC2430/31的Zigbee实践(4)—TI Z-Stack
- 日志、字段备注查询、自增ID联系设置、常用存储过程
- 利用java反射机制简化数据封装操作
- builder模式
- SQL2005完全卸载