V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
52coder
V2EX  ›  程序员

c/c++网络库源码推荐

  •  
  •   52coder · 2020-09-09 17:31:17 +08:00 · 4513 次点击
    这是一个创建于 1296 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前在 V2EX 发过贴,有收集一波 https://v2ex.com/t/605937#reply37, 老弟也没看哈哈哈哈,疫情期间学了 c 简单过了一遍网络编程 apue,希望能找一个短小精悍,适合深入阅读学习的开源代码,主要学习网络 进程间通信 ipc 等,老弟自己搜索找到一个库,https://github.com/acl-dev/acl 有看过这个源码的没,各位大佬有没有更好的推荐。

    26 条回复    2020-09-14 11:17:21 +08:00
    lbmjsls1
        1
    lbmjsls1  
       2020-09-09 17:45:54 +08:00
    libevent 和 libuv,看一个就够了,我在看 libevent
    guonaihong
        2
    guonaihong  
       2020-09-09 17:47:08 +08:00
    c/c++的细节太多了,看的时候有种只见树叶不见树干的感觉。如果一定要选择 c/c++,可以试下 libev,代码相对少点。
    52coder
        3
    52coder  
    OP
       2020-09-09 17:49:58 +08:00
    @lbmjsls1 acl 那个有了解么,看着也还可以?
    paoqi2048
        4
    paoqi2048  
       2020-09-09 17:58:36 +08:00
    52coder
        5
    52coder  
    OP
       2020-09-09 17:58:44 +08:00
    @guonaihong 感谢推荐,有比 livevent 简单点的没,担心老弟看不懂呀,哈哈哈
    lbmjsls1
        6
    lbmjsls1  
       2020-09-09 18:03:22 +08:00
    @52coder 当时找网络库都了解看过,我感觉最好入门的就是 libevent 了,可以到管网看一下,好多项目在用。网路库主要是看个平台异步网络接口如何实现。我是为了看一下 epoll 有什么陷阱和借鉴,因为公司项目是 iocp,已经玩的差不多了,准备把项目移植到 linux 下
    lbmjsls1
        7
    lbmjsls1  
       2020-09-09 18:05:16 +08:00
    acl 不必 libevent 简单。更复杂的可以看一下 niginx,不过网路学习还是要自己做东西。主要是异常链接断开的处理。tcp 的粘包,什么 10053 10054 的错误
    waruqi
        8
    waruqi  
       2020-09-09 18:37:37 +08:00 via Android
    tbox 里面也有协程和网络相关的库 c 库 也是跨平台的 https://github.com/tboox/tbox ,里面的协程支持 epoll poll select kqueue 甚至 win iocp 的调度,除了 socket,还有 pipe 和 进程调度也同时支持
    BBCCBB
        9
    BBCCBB  
       2020-09-09 18:43:08 +08:00
    貌似 redis 的网络实现比较简单, 可以研究一下, 我没看过, 不怎么会 c..
    timsensor
        10
    timsensor  
       2020-09-09 19:04:07 +08:00 via Android
    asio
    asuraa
        11
    asuraa  
       2020-09-09 19:11:04 +08:00
    我用的 poco 建议看看 poco 真正的现代 cpp
    当然 boost asio 也不错
    angryfish
        13
    angryfish  
       2020-09-09 20:05:16 +08:00 via iPhone
    建议不要看,直接做项目
    shuax
        14
    shuax  
       2020-09-09 20:37:09 +08:00
    asio 吧,听说以后就是 C++标准
    CareiOS
        15
    CareiOS  
       2020-09-09 20:39:09 +08:00
    asio+1
    MeteorCat
        16
    MeteorCat  
       2020-09-09 20:42:59 +08:00 via Android
    moduo
    turi
        17
    turi  
       2020-09-09 21:59:41 +08:00
    asio+1


    确实 c++标准都从 boost 里面扒了好多内容
    Tony042
        18
    Tony042  
       2020-09-09 22:43:50 +08:00
    muduo
    52coder
        19
    52coder  
    OP
       2020-09-09 23:17:39 +08:00
    @Tony042 这个看豆瓣评价,好评和恶评都有的哇
    52coder
        20
    52coder  
    OP
       2020-09-09 23:18:53 +08:00
    @BBCCBB 恩,确实 redis 这个之前我写 c 的时候还从里面抄过代码
    wzzzx
        21
    wzzzx  
       2020-09-09 23:22:15 +08:00
    @52coder #19 我觉得 muduo 这样库就挺不错的,还有专门一本书将实践。能搞懂 muduo 的人,肯定不差,你说呢
    zhuangzhuang1988
        22
    zhuangzhuang1988  
       2020-09-09 23:55:26 +08:00
    @guonaihong
    的确, 可以试试看 tornado 的代码试试.
    python 的代码, c++的太多杂乱了.
    PUBG98k
        23
    PUBG98k  
       2020-09-10 15:32:38 +08:00
    livepps
        24
    livepps  
       2020-09-10 16:41:00 +08:00
    asio +1
    DCounter
        25
    DCounter  
       2020-09-14 10:33:42 +08:00
    "疫情期间学了 c 简单过了一遍网络编程 apue" 这是花了多少时间啊,学到啥程度了啊?
    52coder
        26
    52coder  
    OP
       2020-09-14 11:17:21 +08:00
    @DCounter 北邮大三,有点基础,之前兴趣点在前端,现在对 c/c++也感兴趣了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3726 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:04 · PVG 13:04 · LAX 22:04 · JFK 01:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.