完成端口通讯服务器设计 (IOCP Socket Serv er) 第一章:是谁神化了 IOCP Windows系统下的 socket模型有多种,其中完成例程的效率也是相当高的,其它的也不差(相关模型知识这里不多做介绍,读者可以自己搜索或查阅有关资料)
但是不知道为什么,一提起 IOCP 就会有很多人质疑:IOCP 真的有这么神话吗
尽管质疑,依然有很多人还是在茫茫网络中苦苦寻找一个完整的 IOCP 源码,希望能够对了解 IOCP 起到事半功倍的作用,不过得到的大多也只是残缺不全的
什么是 IOCP
IOCP 的机制是什么
IOCP 有怎样的性能
当一个人深入了解 IOCP 以后,才解开了它神话之谜:其实它没有什么神话
很多人之所以质疑 IOCP,说出上面那句话的时候,其实是他正在神化 IOCP,主要是因为对 IOCP 不了解,甚至不知道
所以,是谁神化了 IOCP 呢
是那些不了解 IOCP但又想了解却没有进展的人
IOCP 主要针对数据吞吐量和连接并发量而设计
有些人使用 IOCP,做的却是堵塞模式的事情:对每个连接自己建立一个发送队列,每次才投递一个发送请求给 IOCP,等该请求已决后才又出列一个再投递给 IOCP
任何一个服务器,能达到怎样的性能,对设计者的要求也是苛刻
根据服务器对性能要求,合理 利用通讯模型,才是设计者的关键
如果在一个只有100个终端且每个终端每10秒才发送一个数据包的服务器系统里,用什么 Socket模型都一样,甚至用 Win98系统做都可以
对于一个服务器而言,需要设计者对内 存 管理 ,对网络状况,对操作系统等等都要有深入了解,并具有深厚的技术功底
否则,还会产生更多神化 IOCP 的人
服务器性能,系统支持是基础,设计者水平是关键
而这个水平条件,没有一个衡量的最终标准,它是永无止境的,会随着时间和经验的积累不断提高