笔记_重叠IO

简介

 

重叠模型可运行在支持Winsock2所有Windows平台,而完成端口只是支持NT系统

 

使用重叠模型的应用程序通知缓冲区收发系统直接使用数据。也就是说,如果应用程序投递了一个10KB大小的缓冲区来接收数据,且数据已经到达套接字,则该数据将直接被拷贝到投递的缓冲区。

 

所谓投递,也就是通知系统管理相应缓冲区吧。

 

基于事件通知的重叠模型要收到64个等待事件限制,而完成例程类似于回调函数

 

流程

 

基于事件通知的重叠IO

01创建套接字

02监听连接

03接入连接

04创建重叠结构、事件

05.将重叠结构与事件关联

06.在套接字上投递WSARecv请求。(让WSAOVERLAPPED结构来替我们管理I/O 请求及相关缓冲区)

07事件通知我们重叠操作完成WSAWaitForMultipleEvents函数)

08.如果以后还需要利用此事件,则使用WSAResetEvent函数重设当前用完事件对象

09查询重叠操作结果WSAGetOverlappedResult函数)

10继续投递WSARecv请求

 

 

基于完成例程的重叠IO

01编写完成例程

02创建套接字

03监听连接

04接入连接

05创建重叠结构

06.在套接字上投递WSARecv请求(将重叠结构与完成例程关联)(让WSAOVERLAPPED结构来替我们管理I/O 请求)

07等待重叠操作完成 调用WSAWaitForMultipleEvents函数或者SleepEx函数)

08继续投递WSARecv请求

 

参考

手把手教你玩转SOCKET模型之重叠I/O

http://blog.csdn.net/piggyxp/archive/2004/09/23/114883.aspx

手把手教你玩转网络编程模型之完成例程(Completion Routine)

http://blog.csdn.net/PiggyXP/archive/2009/02/19/3910726.aspx

 

你可能感兴趣的:(数据结构,编程,.net,socket,网络应用)