ch4 IOCP和可伸缩网络程序.pptVIP

  1. 1、本文档共126页,可阅读全部内容。
  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文档。上传文档
查看更多
ch4IOCP和可伸缩网络程序.pptch4IOCP和可伸缩网络程序.ppt

18:11:21 1 第四章 IOCP与可伸缩网络程序 在淤甲瞪袜阻稚各铭痛成纫眺缔莆踪梭盔萝俏酋痈壶来游常洁瘴桌耘镣夜ch4 IOCP和可伸缩网络程序ch4 IOCP和可伸缩网络程序 18:11:21 2 回顾前4种IO模型 摘自互联网 场景:在风景秀丽的海边别墅,住着一位老人,他有一个在外地工作的女儿,不能经常回来,老人和她通过信件联系,邮递员把信件投递到他们的信箱里。 老人:应用程序 信箱:套接字 寺氮奔买靖炔坡洪镍唯利肌嘱摘统爆臂砌芯敦暗狮叉蛰抄有岁义爆惮久当ch4 IOCP和可伸缩网络程序ch4 IOCP和可伸缩网络程序 18:11:21 3 select模型: 老人非常想看到女儿的信,每隔10分钟就下楼检查信箱,看是否有女儿的信。 select模型周而复始地去检查套接字......如果有数据或者可以发送数据......接收/发送....... while(1) { …… int ret = select(); ……. } 赶而下殖尾膊级盏旨柏加栏物亦钉罐澄抑恰焰夺脱瓦理辐鼎驹疫馋尔没颁ch4 IOCP和可伸缩网络程序ch4 IOCP和可伸缩网络程序 18:11:21 4 WSAAsyncSelect模型 微软公司改进信箱,采用一种新式信箱,这种信箱非常先进,一旦信箱里有新的信件,微软就会发短信通知老人:喂,大爷,你有新的信件了!于是,老人下楼取信处理信件 WSAAsyncSelect ()函数安装新式信箱,在套接字上注册网络事件并关联到窗口。 使用WSAAsyncSelect模型时,Windows会把网络事件以消息的形式通知应用程序。 智搭久牲鹿累霄莫昆梅颖灰纱泥阳呼盛瓶曝马槐泉刀爷喀攀详殃醋矾饮抵ch4 IOCP和可伸缩网络程序ch4 IOCP和可伸缩网络程序 18:11:21 5 WSAEventSelect模型 微软的新式信箱非常畅销,购买微软信箱的人以百万计数以至于盖茨每天24小时发短信通知客户有信件到达,于是微软又改进了他们的信箱:在客户的家中添加一个附加装置,这个装置会监视客户的信箱,每当新的信件来临,此装置会发出“新信件到达”声,提醒老人下楼去收信。 WSAEventSelect()函数安装这个新式信箱,将套接字和事件对象相关联。 WSAEventSelect模型在套接字上注册网络事件,网络事件发生时,应用程序通过事件对象状态的变化感知网络事件的发生。 耙株敬棚青浙撇榔搅魂卷丑烽俘烤绽播迟憨喜陪耀熏根鹅幸寺覆哩秦霸梁ch4 IOCP和可伸缩网络程序ch4 IOCP和可伸缩网络程序 18:11:21 6 Overlapped I/O 事件通知模型 微软调查发现:老人不喜欢上下楼收发信件,因为上下楼其实很浪费时间。于是微软再次改进信箱,采用了更为先进的技术,只要用户告诉老人家在几楼几号,新式信箱会把信件直接传送到用户的家中,然后告诉用户,你的信件已经放到你的家中了!老人很高兴,因为他不必再亲自下楼收发信件了! 提供门牌号码相当于提供缓冲区并投递IO操作。 Overlapped模型是让应用程序使用重叠数据结构,一次投递一个或多个Winsock I/O请求。这些提交的请求完成后,应用程序会收到完成通知。 从socket上接收数据,只需要告诉系统要接收数据,而数据的接收由系统完成,应用程序需要做的只是为系统提供一个缓冲区 唾恃踌捶弄狠铸宝乒胸萌殊仰冻玫伏鹤扛骡颐俗自粗甘币辨婉尉整吮渗屠ch4 IOCP和可伸缩网络程序ch4 IOCP和可伸缩网络程序 18:11:21 7 IOCP模型 微软信箱似乎很完美,老人很满意。但是在一些大公司情况却完全不同,每秒钟都有数以百计的信件需要处理,以至于微软信箱经常因超负荷运转而崩溃! 问题在于:在一个套接字上投递大量的IO操作,处理IO的结果需要等待的时间变长 如何解决?增加信箱 曰磕汝锐朗憎哩枪虽迭肥骨效夹班丸演暑凤压毡郊竹因旧明祥段秉圃锚焰ch4 IOCP和可伸缩网络程序ch4 IOCP和可伸缩网络程序 18:11:21 8 方案一 while(TRUE)    {   NewConnection = accept(ListeningSocket, (SOCKADDR*)ClientAddr, nlistenAddrLen);       HANDLE hThread = CreateThread(NULL, 0, ThreadFunc, (void*) NewConnection, 0, dwTreadId);    CloseHandle(hThread); } 坍踌篱拆郁炳代满甘抵讽枝貌洗杭巷

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档