Browse by type
| Part Ⅰ | Part Ⅱ | Part Ⅲ | Part Ⅳ | Part Ⅴ | Part Ⅵ | Part Ⅶ |
|---|---|---|---|---|---|---|
| 项目介绍 | 项目特点 | 开发环境 | 并发模型 | 构建项目 | 运行案例 | 模块讲解 |
本项目是参考 muduo 实现的基于 Reactor 模型的多线程网络库。使用 C++ 11 编写去除 muduo 对 boost 的依赖,内部实现了一个小型的 HTTP 服务器,可支持 GET 请求和静态资源的访问,且附有异步日志监控服务端情况。
项目已经实现了 Channel 模块、Poller 模块、事件循环模块、HTTP 模块、定时器模块、异步日志模块、内存池模块、数据库连接池模块。
Ubuntu 18.04.6 LTSg++ 7.5.0vscodegitcmake 3.10.2
项目采用主从 Reactor 模型,MainReactor 只负责监听派发新连接,在 MainReactor 中通过 Acceptor 接收新连接并轮询派发给 SubReactor,SubReactor 负责此连接的读写事件。
调用 TcpServer 的 start 函数后,会内部创建线程池。每个线程独立的运行一个事件循环,即 SubReactor。MainReactor 从线程池中轮询获取 SubReactor 并派发给它新连接,处理读写事件的 SubReactor 个数一般和 CPU 核心数相等。使用主从 Reactor 模型有诸多优点:
安装Cmake
sudo apt-get update
sudo apt-get install cmake
下载项目
git clone git@github.com:Shangyizhou/tiny-network.git
执行脚本构建项目
cd ./tiny-network && bash build.sh
这里以一个简单的回声服务器作为案例,EchoServer默认监听端口为8080。
cd ./example
./EchoServer
执行情况:

http模块有一个小型的HTTP服务器案例,也可以执行。其默认监听8080:
cd ./src/http && ./HttpServer

这里的某些模块会配置 muduo 源码讲解,有些使用的是本项目的源码,不过实现思路是一致的。
$ claude mcp add A-Tiny-Network-Library \
-- python -m otcore.mcp_server <graph>