第三章_overlappedIO.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章_overlappedIO

* * * * * 重叠IO模型 Prepared by Shing (Remark: Modified by Zero) 2种类型 Overlapped IO 事件通知模型 后来,微软通过调查发现,老陈不喜欢上下楼收发信件,因为上下楼其实很浪费时间。于是微软再次改进他们的信箱。新式的信箱采用了更为先进的技术,只要用户告诉微软自己的家在几楼几号,新式信箱会把信件直接传送到用户的家中,然后告诉用户,你的信件已经放到你的家中了!老陈很高兴,因为他不必再亲自收发信件了! Overlapped IO 完成例程模型 老陈接收到新的信件后,一般的程序是:打开信封----掏出信纸 ----阅读信件----回复信件 ......为了进一步减轻用户负担,微软又开发了一种新的技术:用户只要告诉微软对信件的操作步骤,微软信箱将按照这些步骤去处理信件,不再需要用户亲自拆信 /阅读/回复了!老陈终于过上了小资生活! Outline Traditional Blocking I/O Overlapped I/O Event Object Signaling Alertable I/O Traditional Blocking I/O Time Required = A + B + C + D Max Rate = Packet Size / Time Required Do Some Processing Recv() Wait for Packet Move Data to User Buffer Call Lower Layer Receive Routine A B C D Application OS Overlapped I/O When using overlapped I/O, the I/O operation will run in the background While the I/O operation runs in the background, the application can do some other processing When the I/O operation completes, the application is notified There are multiple mechanisms for notifying the application that an I/O operation has been completed: Event Object Signaling Alertable I/O Overlapped I/O Advantages Non-blocking Use application buffers to receive data directly Allow posting multiple receive calls Overlapped I/O Create Overlapped Socket Use WSASocket() instead of socket() Use normal bind(), accept(), connect() etc… Overlapped I/O Send Receive Data For TCP, use WSASend() WSARecv() For UDP, use WSASendTo() WSARecvFrom() Overlapped I/O Receive Important parameters for WSARecv and WSARecvFrom: Socket Array of WSABUF structures Number of elements in WSABUF array WSAOVERLAPPED structure Pointer to I/O completion routine (used for alertable I/O) Overlapped I/O Receive The return value Does not return the number of bytes received. Only tell you it success or error. SOCKET_ERROR may be returned even there was no error. Use WSAGetLastError() to check, if error code is WSA_IO_PENDING, it means there is no error!!! Overlapped I/O WSABUF The definition of buf

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档