完整项目:通讯框架+业务逻辑框架
【项目内容】
(1)项目是非常完整的多线程高并发服务器程序
(2)按照包头+包体格式收,完美的解决了数据粘包的问题
(3)根据收到的数据包来执行不同的业务逻辑
(4)把业务处理产生的结果数据包正确的返回给客户端
【用到的主要开发技术】
(1)epoll高并发通讯技术,用的是水平触发模式【LT】,简单提及边缘触发模式【ET】
(2)通过线程池技术处理业务逻辑
(3)多线程,线程之间的同步技术包括互斥量、信号量等等
(4)次要技术:信号,日志打印,fork()创建子进程,守护进程怎么写
【借鉴了官方nginx哪些精华代码】
(1)一个master进程,多个worker进程的 进程框架;
(2)epoll实现代码,但官方epoll的触发模式用的是ET【我们的项目用的是LT】
(3)借鉴了官方nginx的接收数据包以及发送数据包的核心代码;
【哪些是我们没有借鉴官方nginx而独立实现的代码】
(1)epoll LT模式;
(2)自己写了一套线程池来处理业务逻辑,调用适当的业务逻辑处理函数,直至处理完毕把数据发送回客户端;
(3)连接池中的连接的延迟回收(精华技术);
(4)专门处理数据发送的一整套数据发送逻辑以及发送线程。