【开源】C++异步网络框架,希望对感兴趣的同学带来一些启发。


发布一个源创的linux C++异步网络框架, 基于工作需求,偏重工程实践。

开发者不需关心 连接,监听,以及底层I/O,只需关注业务自身,这是网络框架的目标。

 

内置的唤醒接口可以轻松将框架扩展至多线程工作模式:https://code.csdn.net/qq120848369/ez_poll

 

 

项目介绍


这是C++实现的一个异步网络开发库, 只能够在linux系统下工作.
开发的初衷是维护一个自实现的, 满足工作需求, 符合工程实践的网络开发库, 可以快速安全的开发业务代码.


功能摘要

1.基于epoll作为底层实现,做了fd层以及socket层两级封装,通用性与便捷性并存.

2.在socket层为使用者屏蔽了网络I/O(read/write), 异步连接(connect), 监听连接(listen,accept)等底层调用, 只需关心数据处理(on_message), 连接错误(on_error), 连接关闭(on_close), 以及发送数据(send_message).

3.内置了wakeup接口, 用于唤醒处于挂起状态的poll(epoll_wait)调用, 可以轻松将网络程序扩展至多线程工作模式(one event per thread).

4.对用户负担极小的接口设计与内存管理, 基于面向对象的框架设计符合工程实践, 实现server与client仅需极少的代码.

5.内置多线程支持, 充分发挥单进程性能极限, 使用方法足够简单.

 

 

对于这类工作中常用的库,比如网络库,日志库,配置库,我不喜欢用开源代码,我更喜欢自己实现一份,根据需求慢慢的优化和扩展,作为随身携带的战斗武器,走到哪里都能掏出来用。

网络库我也发过几个,但对代码的设计实现一直不是很满意,主要源于接口的一致性不高,工程实践性不强。 所以,我也思考了很多设计方法,现在这份代码我感觉至少能够让我满意。

 

项目内有sample可以参考,例子的设计风格参考了我们部门常见的C++设计风格,实践性比较强。

 

有兴趣同学可以围观一下,暂时sample的测试没有什么内存和功能问题。

后续我会持续维护这个库,用在一些复杂的网络项目里。 没有不含BUG的代码,大家发现问题一定要反馈给我修复,谢谢。

 

欢迎跟帖讨论, 欢迎吐槽拍砖, 谢谢.

转载于:https://www.cnblogs.com/cppisnotbad/p/3386252.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值