文件名称:WebServer-reference-muduo
文件大小:326KB
文件格式:ZIP
更新时间:2024-04-04 12:45:55
C++
Web服务器参考-muduo 简介 本项目是由C ++ 11编写的一个静态Web服务器,能够解析GET请求,参考了陈硕大佬的muduo网络库,linya的WebServer和游双的《 Linux高效服务器编程》。在本机上使用webbench并发1000个客户端访问,短连接能达到大约3wQPS长连接能达到大约7wQPS。 用法 mkdir build cd build cmake .. make 项目设计 本项目使用的并发模型是Reactor +非双重io分配+线程池,设计基本遵循muduo中所说的每个线程一个循环。一个mainloop负责接受连接,然后将连接线程池中的loopthread处理,loopthread全权负责接受到的连接,即同时负责接受数据,对数据进行处理和发送数据。 项目使用基于对象的设计,而非面向对象的设计,大量使用std :: bind来代替虚函数。 项目使用的是epol
【文件预览】:
WebServer-reference-muduo-main
----Main.cpp(505B)
----html()
--------index(930B)
----webbench()
----README.md(3KB)
----net()
--------Buffer.cpp(2KB)
--------HttpState.h(1KB)
--------Channel.h(2KB)
--------EventLoop.cpp(3KB)
--------SocketOps.h(483B)
--------EventLoopThreadPool.cpp(733B)
--------Acceptor.h(953B)
--------HttpSever.h(1KB)
--------Channel.cpp(1KB)
--------Timer.cpp(3KB)
--------TcpConnection.cpp(6KB)
--------HttpSever.cpp(12KB)
--------Buffer.h(2KB)
--------EventLoopThread.h(411B)
--------Epoll.cpp(2KB)
--------EventLoopThreadPool.h(612B)
--------SocketOps.cpp(2KB)
--------EventLoop.h(2KB)
--------Timer.h(2KB)
--------TcpServer.cpp(2KB)
--------TcpServer.h(2KB)
--------CMakeLists.txt(155B)
--------TcpConnection.h(2KB)
--------Epoll.h(880B)
--------EventLoopThread.cpp(867B)
--------Acceptor.cpp(2KB)
----base()
--------Thread.h(714B)
--------log.cpp(2KB)
--------CountDownLatch.h(269B)
--------CurrentThread.h(559B)
--------LoggingAsync.h(1KB)
--------Condition.h(908B)
--------FileUtil.h(384B)
--------FixedBuffer.h(1009B)
--------LogFile.h(642B)
--------Thread.cpp(2KB)
--------LogFile.cpp(677B)
--------FileUtil.cpp(1KB)
--------LoggingAsync.cpp(3KB)
--------log.h(1KB)
--------CurrentThread.cpp(493B)
--------CountDownLatch.cpp(401B)
--------noncopyable.h(219B)
--------Mutex.h(878B)
--------CMakeLists.txt(141B)
----img()
--------cxzweb短连接测试.png(65KB)
--------linyaweb短连接.png(60KB)
--------cpu负载短连接.png(45KB)
--------cxzweb长连接测试.png(60KB)
--------linyaweb长连接测试.png(60KB)
--------cpu负载长连接.png(41KB)
----CMakeLists.txt(394B)