采用状态机的处理方式对http协议进行逐步拆分解。
基于一个并发安全的队列,利用c++线程库实现的线程池。
采用非阻塞IO(bio)加ET(边沿触发),半同步半反应堆(reactor)模式,主线程只通过epoll进行io读写事件的分发和连接处理,工作线程通过锁的争抢执行事件。
引入了我自己写的一个并发安全的日志库WLog。
本来实现了一个基于红黑树的定时器来处理超时事件,后续作用到项目上不是很好,会在后续的网络库中实现。
总结:
本项目是基于网络编程基础实现的一个httpServer,有很多可以完善的地方,主要目的还是熟悉网络编程一些知识和整体架构,期待后续网络库的实现。