重叠I/O-事件通知
2010-10-19 09:31
302 查看
原文:http://network.is-programmer.com/posts/19961.html
重叠I/O的基本原理是让应用程序使用重叠的数据结构,投递一个或多个I/O请求。
在winsock中的重叠数据结构定义是WSAOVERLAPPED,用来完成重叠I/O的方式有两种,1事件通知 2完成实例
在事件通知方式中,通过WSAOVERLAPPED结构将每个socket和事件关联在一起,通过调用WSARcev等非阻塞函
数,将WSAOVERLAPPED结构体与其关联。调用WSAWaitForMultipleEvents函数等待事件,这个函数可以放到另外一个线程中
进行处理,当数据到达后会存放到之前WSARcev中的buf中。
编程顺序如下:
1 创建一个套接字,开始在指定的端口上侦听
2 接收一个入站的连接请求
3 为接受的套接字新建一个WSAOVERLAPPED结构,并为该结构分配一个事件对象句柄。也将该事件对象分配给一个事件数组,以便稍后由WSAWaitForMultipleEvents函数使用。
4 将WSAOVERLAPPED结构指定参数,在套接字上投递一个异步WSARecv请求。
5 使用步骤3的数组,调用WSAWaitForMultipleEvents函数,并等待与重叠调用关联在一起的事件。
6 使用WSAGetOverlappedResult函数,判断重叠调用的返回状态
7 函数完成后,针对事件数组,调用WSAResetEvent函数,重设事件对象,并对完成的事件请求进行处理。
8 在套接字上重新投递另一个WSARecv请求
9 重复步骤5-8
?
重叠I/O的基本原理是让应用程序使用重叠的数据结构,投递一个或多个I/O请求。
在winsock中的重叠数据结构定义是WSAOVERLAPPED,用来完成重叠I/O的方式有两种,1事件通知 2完成实例
在事件通知方式中,通过WSAOVERLAPPED结构将每个socket和事件关联在一起,通过调用WSARcev等非阻塞函
数,将WSAOVERLAPPED结构体与其关联。调用WSAWaitForMultipleEvents函数等待事件,这个函数可以放到另外一个线程中
进行处理,当数据到达后会存放到之前WSARcev中的buf中。
编程顺序如下:
1 创建一个套接字,开始在指定的端口上侦听
2 接收一个入站的连接请求
3 为接受的套接字新建一个WSAOVERLAPPED结构,并为该结构分配一个事件对象句柄。也将该事件对象分配给一个事件数组,以便稍后由WSAWaitForMultipleEvents函数使用。
4 将WSAOVERLAPPED结构指定参数,在套接字上投递一个异步WSARecv请求。
5 使用步骤3的数组,调用WSAWaitForMultipleEvents函数,并等待与重叠调用关联在一起的事件。
6 使用WSAGetOverlappedResult函数,判断重叠调用的返回状态
7 函数完成后,针对事件数组,调用WSAResetEvent函数,重设事件对象,并对完成的事件请求进行处理。
8 在套接字上重新投递另一个WSARecv请求
9 重复步骤5-8
?
相关文章推荐
- winsock IO 模型---重叠IO之事件通知 example code
- Windows Socket I/O模型之 重叠I/O事件通知模式
- 重叠I/O-事件通知
- 重叠模型--事件对象通知
- 重叠I/O之事件通知
- 重叠I/O之事件通知
- Socket I/O模型之重叠I/O(overlapped I/O)--事件通知
- 重叠I/O之事件对象通知
- Windows socket之重叠IO:事件通知
- 基于事件通知的重叠I/O网络模型
- 模型设计与实践---(六)重叠IO,事件通知(Overlap Event)
- Overlapped重叠I/O之事件通知
- 事件通知方式实现的重叠I/O模型
- Windows socket之重叠IO:事件通知
- 用事件通知方式实现的重叠I/O模型
- 重叠I/O之事件通知
- 重叠I/O之事件对象通知
- 重叠IO之事件通知模型
- WinSock IO模型四: 重叠I/O (事件通知)
- Socket IO重叠模型(事件通知)