笔记_重叠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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值