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

2020-09-09 17:31:17 +08:00
 52coder

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

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


确实 c++标准都从 boost 里面扒了好多内容
Tony042
2020-09-09 22:43:50 +08:00
muduo
52coder
2020-09-09 23:17:39 +08:00
@Tony042 这个看豆瓣评价,好评和恶评都有的哇
52coder
2020-09-09 23:18:53 +08:00
@BBCCBB 恩,确实 redis 这个之前我写 c 的时候还从里面抄过代码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/705553

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX