windows下利用完成端口(IOCP)搭建服务端网络库

服务端网络库是后端服务体系基石,网络库性能高低决定服务性能起点。本篇简介在windows下利用完成端口来搭建服务端网络库。

1. 技术选型

windows下网络IO模型大致有:select模型、WSAAsyncSelect模型、WSAEventSelect模型、重叠I/O模型、完成端口模型,共五类模型。

(一)select模型贴近底层使用socket基础函数,封装简单易开发,但性能不太高,适用小量连接。

(二)WSAAsyncSelect模型基于windows消息系统模型,和界面窗口易于配合便于开发,适合基于windows窗口界面开发,不适合服务端。

(三)WSAEventSelect模型,基于事件通知模型,由于系统限制每组事件关联有数量上限,虽然可以采用一定的技术突破一定量限制,但相对还是有限制,不好扩展。

(四)重叠I/O模型。其实质也是基于事件通知模型,只不过系统封装了一部分,没有事件关联上的数量限制。咋一看该模式和上面模型都是基于事件通知模型,那为啥还区分为两类模型呢?其实本模型虽然和WSAEventSelect模型都是基于事件通知模型,但是WSAEventSelect模型只做事件通知,告知应用那个socket发生了事件,该去处理了。而本模型,除了事件通知以外,同时还附带着网络数据,无需应用层调用recv去接收数据。通过上述描述,可知本模型是上面模型的扩展,是递进关系。

(五)完成端口模型。完成端口模型是基于windows系统提供的几个API基础上实现的高容量,高性能网络IO模型。其实质同样也是基于事件通知,只不过类比起前面两类IO模型,完成端口完成了更多功能,不仅仅是完成事件通知,附带网络数据,还替代应用层实现了IO线程的调度。只有让应用层做得更少

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值