2008年11月29日星期六

感悟iocp编程

最近的几个月都是在开发服务器,对winsock网络编程的几个模型都研究得比较多了,看到了网络上面各种各样的讨论,关于网络编程的示例代码也不少,不过在于我看来,有些根本就没有说到重点。很多人都说IOCP是winsock中效率是最高的,也给出了代码,不过那些代码大多是echo类型的,没有相关的业务逻辑。我不可能就根据一个socket就可以处理业务了吧,肯定还需要相关的数据结构,很多没有说,最后我采用的方法是: 在handle data那里加一个指针指向相关的结构,这样就快多了. 其次,很多的示例都没有讲到在iocp里面怎么样安全的释放数据,我找了很久,才发现记录投递的次数作为退出的依据,投入队列加一,从队列出来就减一,当计数为零的时候,就可以安全退出了.
IOCP确实比较麻烦,主要是多线程并发和消息驱动,处理好逻辑,不容易啊, 我现在都不是很懂~~~