您的位置:首页 > 其它

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

2011-07-27 00:03 302 查看
转载自/article/2321467.html

完成端口通讯服务器(IOCP Socket Server)设计
(一)是谁神化了IOCP
Copyright © 2009 代码客(卢益贵)版权所有
QQ:48092788 源码博客:http://blog.csdn.net/guestcode
Windows系统下的socket模型有多种,其中完成例程的效率也是相当高的,其它的也不差(相关模型知识这里不多做介绍,读者可以自己搜索或查阅有关资料)。但是不知道为什么,一提起IOCP就会有很多人质疑:IOCP真的有这么神话吗?

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

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

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

服务器性能,系统支持是基础,设计者水平是关键。而这个水平条件,没有一个衡量的最终标准,它是永无止境的,会随着时间和经验的积累不断提高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐