项目简介
本项目是一个小型的HTTP Web服务器,运用epoll的I/O多路复用与多线程来实现并发处理。其中,主线程负责客户端的连接以及数据的读写,工作线程则负责解析HTTP请求并生成响应。
项目的主要特性和功能
- 并发处理:采用epoll边沿触发IO多路复用技术,搭配多线程池达成高并发处理。
- HTTP请求解析:利用状态机解析HTTP请求,支持GET和POST方法。
- 定时器管理:运用时间堆定时器剔除不活跃连接,优化资源使用。
- 信号处理:支持SIGALRM和SIGTERM等信号处理,用于超时管理和优雅退出。
- 压力测试:提供压力测试工具WebBench,可评估服务器性能。
安装使用步骤
环境准备
- 操作系统:Ubuntu 16.04(虚拟机)
- 编辑器:Sublime + Vim
- 编译器:gcc 5.4.0
复制项目
bash
cd myHttpServer
编译项目
bash
make
运行服务器
bash
./myHttpServer <ip> <port>
示例:
bash
./myHttpServer 127.0.0.1 8080
压力测试
使用WebBench进行压力测试:
bash
./WebBench -c <clients> -t <seconds> http://<ip>:<port>/
示例:
bash
./WebBench -c 1000 -t 60 http://127.0.0.1:8080/
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】