IOCP模型与网络编程-阿里云开发者社区

开发者社区> 开发与运维> 正文

IOCP模型与网络编程

简介:

IOCP模型与网络编程

一。前言:
        在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模式,装饰模式之类的那些呢?嘿嘿,不过好像是一个挺好玩的东西,挺好奇是什么东西来的,又是一个新知识啦~于是,开始去寻找一大堆的资料,为这个了解做准备,只是呢,有时还是想去找一本书去系统地学习一下,毕竟网络的资料还是有点零散。话说,本人学习这个模型的基础是,写过一个简单的Socket服务器及客户端程序,外加一个简单的Socket单服务器对多客户端程序,懂一点点的操作系统原理的知识。于是,本着一个学习与应用的态度开始探究这个IOCP是个什么东西。

 

二。提出相关问题:
       1.  IOCP模型是什么?
       2.  IOCP模型是用来解决什么问题的?它为什么存在?
       3.  使用IOCP模型需要用到哪些知识?
       4.  如何使用IOCP模型与Socket网络编程结合起来?
       5.  学会了这个模型以后与我之前写过的简单的socket程序主要有哪些不同点?

 

三。部分问题探究及解决:(绝大多数是个人理解,再加上个人是菜鸟,如果有什么不对的地方,欢迎指正)
       1.  什么是IOCP?什么是IOCP模型?IOCP模型有什么作用?
              1) IOCP(I/O Completion Port),常称I/O完成端口。
              2) IOCP模型属于一种通讯模型,适用于(能控制并发执行的)高负载服务器的一个技术。
              3) 通俗一点说,就是用于高效处理很多很多的客户端进行数据交换的一个模型。
              4) 或者可以说,就是能异步I/O操作的模型。
              5) 只是了解到这些会让人很糊涂,因为还是不知道它究意具体是个什么东东呢?


下面我想给大家看三个图:
第一个是IOCP的内部工作队列图。(整合于《IOCP本质论》文章,在英文的基础上加上中文对照)
 

第二个是程序实现IOCP模型的基本步骤。(整合于《深入解释IOCP》,加个人观点、理解、翻译)
 

















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366135,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章