博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

iocp (windows), kqueue(freebsd), 或是 epoll(linux)

Posted on 2015-01-28 09:22  bw_0927  阅读(425)  评论(0)    收藏  举报

http://blog.codingnow.com/2006/04/iocp_kqueue_epoll.html

  • IOCP/epoll/kqueue的出现有他们的理由,设计一个可扩展的服务器模型,这些基本上是最好的网络模型。
  • 网络速度的限制往往是通过应答加滑动窗口来限制,固定的限制是没有实际价值。
  • 关于服务器开发,必须要做到网络与逻辑分开。
  • 我一般写服务器都是跨平台的,window下面用iocp,linux下用epoll,或者poll+多线程。
    线程池部分直接整合到网络引擎中。
    逻辑部分采用插件模式,即插即用,关于逻辑中的共享数据我将单独保存。
  • select无疑是比iocp或epoll更耗资源.在大量连接的情况下效率很低.如果只是担心跨平台问题,可以找封装好的异步网络库,比如ACE中的proactor或者ASIO.在有些情况下服务器的逻辑用异步架构来描述更加直接明了