项目简介
本项目是基于C++编写的多线程服务器,主要用于处理TCP连接。项目运用事件驱动的主从Reactor模式,结合epoll的IO多路复用模型,实现了高效的服务器通信。未来计划扩展支持HTTP连接,以达成Web客户端与服务器的通信功能。
项目的主要特性和功能
- 事件驱动的主从Reactor模式:
mainReactor
负责接收新连接,subReactor
负责与客户端之间的通信。 - 高效的IO多路复用模型:使用epoll的边沿触发和非阻塞IO,提高服务器处理效率。
- 线程池管理:采用轮询机制(Round Robin)分配线程,避免线程频繁创建的开销。
- 基于对象编程模式:使用
std::function
和std::bind
实现回调函数,简化类之间的关系,便于后期维护。 - RAII内存管理:使用智能指针和线程锁管理,避免内存泄露。
- 异步日志系统:采用双缓冲技术实现异步日志,便于故障诊断和追踪。
安装使用步骤
- 环境准备:操作系统为Ubuntu 18.04,编译器为g++ 7.5.0。
- 编译项目:使用
g++
编译项目源代码。 - 运行服务器:编译成功后,运行生成的可执行文件启动服务器。
- 连接测试:使用TCP客户端工具连接服务器,进行通信测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】