项目简介
本项目基于C++实现了高并发的HTTP和RPC服务器。项目集成了多种工具类,涵盖基本I/O工具、带缓冲区的I/O工具、进程池、线程池等。借助这些工具类,服务器具备高效处理HTTP请求和RPC调用的能力。
项目的主要特性和功能
HTTP服务器
- 支持长连接,可处理并维护长连接,还会定时清理未活动的连接。
- 采用主从Reactor架构,支持高并发请求处理。
- 能处理HTTP静态内容请求和CGI动态内容请求。
RPC服务器
- 支持长连接,定时清理未活动的连接。
- 采用主从Reactor架构,支持高并发RPC调用。
- 支持最多4个参数的函数绑定和调用,仅验证参数个数,不验证参数类型。
工具类
- 基本I/O工具:提供基本的文件I/O操作。
- 带缓冲区的I/O工具:提供带缓冲区的文件I/O操作,提升读写效率。
- 进程池和线程池:提供进程池和线程池模板类,用于管理和调度进程与线程。
- 服务器工具:提供服务器相关的工具类,如Web服务器工具。
- 通用工具:提供信号工具和多路复用工具,用于处理信号和事件。
- 智能指针:提供勉强线程安全的智能指针类,保障多线程环境下资源安全释放,避免内存泄漏。
- 定时器:提供定时器类,采用类LRU机制,用双向链表和哈希表实现,用于定时任务管理。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 复制项目:
bash
2. 编译项目:
bash
cd TinyWebserver
mkdir build
cd build
cmake ..
make
3. 运行服务器:
bash
./TinyWebserver
4. 测试服务器:
- 使用浏览器访问 http://localhost:8080/home.html
测试静态内容。
- 使用浏览器访问 http://localhost:8080/cgi_bin/adder?15&2
测试动态内容。
- 使用RPC客户端工具测试RPC调用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】