现在的位置: 首页 > 综合 > 正文

是谁神化了IOCP——完成端口通讯服务器(IOCP Socket Server)设计(1)

2013年03月09日 ⁄ 综合 ⁄ 共 830字 ⁄ 字号 评论关闭

完成端口通讯服务器(IOCP Socket Server)设计

(一)是谁神化了IOCP

Copyright © 2009 代码客(卢益贵)版权所有

QQ:48092788   源码博客:http://blog.csdn.net/guestcode

Windows系统下的socket模型有多种,其中完成例程的效率也是相当高的,其它的也不差(相关模型知识这里不多做介绍,读者可以自己搜索或查阅有关资料)。但是不知道为什么,一提起IOCP就会有很多人质疑:IOCP真的有这么神话吗?

尽管质疑,依然有很多人还是在茫茫网络中苦苦寻找一个完整的IOCP源码,希望能够对了解IOCP起到事半功倍的作用,不过得到的大多也只是残缺不全的。什么是IOCPIOCP的机制是什么?IOCP有怎样的性能?当一个人深入了解IOCP以后,才解开了它神话之谜:其实它没有什么神话。很多人之所以质疑IOCP,说出上面那句话的时候,其实是他正在神化IOCP,主要是因为对IOCP不了解,甚至不知道。所以,是谁神化了IOCP呢?是那些不了解IOCP但又想了解却没有进展的人。

IOCP主要针对数据吞吐量和连接并发量而设计。有些人使用IOCP,做的却是堵塞模式的事情:对每个连接自己建立一个发送队列,每次才投递一个发送请求给IOCP,等该请求已决后才又出列一个再投递给IOCP。任何一个服务器,能达到怎样的性能,对设计者的要求也是苛刻。根据服务器对性能要求,合理利用通讯模型,才是设计者的关键。如果在一个只有100个终端且每个终端每10秒才发送一个数据包的服务器系统里,用什么Socket模型都一样,甚至用Win98系统做都可以。

对于一个服务器而言,需要设计者对内存管理,对网络状况,对操作系统等等都要有深入了解,并具有深厚的技术功底。否则,还会产生更多神化IOCP的人。

服务器性能,系统支持是基础,设计者水平是关键。而这个水平条件,没有一个衡量的最终标准,它是永无止境的,会随着时间和经验的积累不断提高。

 

 

 

 

 

抱歉!评论已关闭.