zoukankan      html  css  js  c++  java
  • 【开源】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的代码,大家发现问题一定要反馈给我修复,谢谢。

     

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

  • 相关阅读:
    [Objective-c 基础
    [Objective-c 基础
    [Objective-c 基础
    [Objective-c 基础
    [Objective-c 基础
    [Objective-c 基础
    [Objective-c 基础
    [Objective-c 基础
    [Objective-c 基础
    39. Combination Sum(dfs)
  • 原文地址:https://www.cnblogs.com/cppisnotbad/p/3386252.html
Copyright © 2011-2022 走看看