几个主要cpp开源网络库的比较

最近要作网络方面的工作,主要的需求就是实现一个Reactor框架!所以花时间研究一下cpp可用的开源的网络库,在所有开源的cpp网络库中,常用的也就是ACE、libevent、l以及Boost.ASIO顺带一提我比较熟悉的libev!

首先说说ACE,第一印象就是“庞大”(20万行的代码),一大堆东西(memory pool、thread pool、定时器、recursive locks)应有尽有了!是一个大型的中间件解决方案。一堆的设计模式,多层构架,使用的时候要考虑好选择哪一层来使用,更关键的是夸平台,我前面I/O聚集和分离解决方案的文章中传输文件描述符的代码就是参照这个里面的代码写地。ACE用起来很象java,但是本不像业务层语言,如果真要用ACE我觉得就不要当作是一个网络库使用,而是一个开发框架(虽然比不上osgi);不然投入和产出比不高,学的太多用的太少! 

libev是一个c语言写成的网络库,这个库我在学校的时候就用过,它封装了linux的epoll(所以可移植性就没有了),代码量少并且很简洁,易究和学习原理,感觉没有什么实际的使用意义。(顺带一提epoll是在活跃链接少的情况下效率高,如果[活跃链接/总链接]大的情况下和select模型没有什么区别,所以epoll适合断连接)。

libevent

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值