这是一个小型的HTTPWeb服务器,它基于epoll的I/O多路复用和多线程实现并发,主线程负责客户的连接和数据的读写,工作线程负责解析HTTP请求。
Part Ⅰ | Part Ⅱ | Part Ⅲ | Part Ⅳ |
---|---|---|---|
项目目的 | 历史版本 | 压力测试 | 遇到困难 |
- 操作系统:Ubuntu 16.04(虚拟机)
- 编辑器:Sublime + Vim
- 编译器:gcc 5.4.0
- 压测工具:WebBench
修改http_conn.cpp中root的地址(html路径)
make
./myHttpServer ip port
- 使用了epoll边沿触发IO多路复用技术
- 使用了一个固定线程数的线程池
- 使用了互斥锁及条件变量用于线程控制
- 使用了状态机解析HTTP请求
- 使用了时间堆定时器剔除非活动连接客户