linux简易服务器
Web服务器能够很好的贯穿所学的知识,之前看过的《C++ Primer》、《操作系统概念》、《STL源码剖析》、《图解TCP\IP》,涵盖了:
- TCP、HTTP协议
- 多进程多线程
- IO
- 锁
- 通信
- C++语法
- 编程规范
在看完陈硕的《Linux多线程服务端编程》后,对相关的模块进行了优化
Linux、C++、Socket、TCP
此项目是基于 Linux 的轻量级多线程 Web 服务器,应用层实现了一个简单的 HTTP 服务器,实现了较高 的并发并支持静态资源访问
- 采用锁+信号量并运用生产者消费者模型处理线程池的工作队列
- 实现端口复用,防止服务器重启时之前绑定的端口还未释放
- 使用线程池+非阻塞 socket + epoll (ET 和 LT)的并发模型
- 使用状态机解析 HTTP 请求报文,支持解析 GET 请求
个人对于进程与线程的区别、锁与信号量有了更清晰的认识,对于 TCP 和网络编程也有了一定的理解