# TcpServer
### 基于Reactor模型多线程C++ Web服务器
1.实现channel类根据事件注册回调函数,事件驱动,有响应事件触发回调函数;
2.抽象连接类Connection,继承实现Httpconn类;
3.采用主从Reactor模式,一个mainReactor,多subReactor,mainRector负责监听连接,建立连接,采用阻塞Epoll水平触发防止丢失连接,subreactor采用非阻塞Epoll边沿触发处理请求,采用round robin将每个连接均匀分配给subRector,subRector负责读写以及业务逻辑;
4.利用RAII以及单例模式实现数据库连接池;
5.日志分前后端,后端线程负责将日志写入磁盘,前端采用阻塞线程安全的队列收集日志;
6.利用状态机以及正则表达式实现Http报文解析;
7.采用智能指针防止内存泄漏;
8.利用小根堆实现连接超时定时器,每个eventloop有一个连接定时器,连接超时清除多余连接;
![img.png](img.png)
![img_1.png](img_1.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Reactor模型事件驱动C++服务器(源码+项目说明).zip (96个子文件)
code_30312
InetAddress.h 347B
CMakeLists.txt 335B
InetAddress.cpp 430B
Buffer.cpp 1KB
Connection.h 883B
Sql
CMakeLists.txt 52B
SqlConnRAII.h 544B
SqlConnPool.h 725B
SqlConnPool.cpp 2KB
empty.cpp 46B
ThreadPool.cpp 1KB
ThreadPool.h 611B
resources
register.html 3KB
welcome.html 3KB
video.html 3KB
403.html 3KB
js
bootstrap.min.js 36KB
jquery.magnific-popup.min.js 20KB
magnific-popup-options.js 1KB
smoothscroll.js 4KB
wow.min.js 7KB
custom.js 1KB
jquery.js 84KB
css
style.css 9KB
bootstrap.min.css 118KB
magnific-popup.css 7KB
animate.css 71KB
font-awesome.min.css 27KB
login.html 3KB
404.html 3KB
picture.html 4KB
index.html 3KB
405.html 3KB
error.html 3KB
images
instagram-image4.jpg 101KB
instagram-image5.jpg 48KB
instagram-image2.jpg 66KB
profile-image.jpg 46KB
instagram-image3.jpg 58KB
favicon.ico 60KB
instagram-image1.jpg 74KB
400.html 3KB
video
xxx.mp4 37.83MB
fonts
FontAwesome.otf 107KB
fontawesome-webfont.eot 69KB
fontawesome-webfont.woff 82KB
fontawesome-webfont.woff2 65KB
fontawesome-webfont.svg 357KB
fontawesome-webfont.ttf 139KB
Log
CMakeLists.txt 47B
LoggerOutput.h 3KB
LoggerOutput.cpp 2KB
LogStream.cpp 2KB
Logger.h 4KB
LogBuffer.cpp 69B
Log.h 2KB
MicroTimestamp.h 1KB
BlockingQueue.h 3KB
LogFile.cpp 6KB
Log.cpp 4KB
Logger.cpp 2KB
LogFile.h 2KB
MicroTimestamp.cpp 2KB
LogStream.h 2KB
LogBuffer.h 1KB
Acceptor.h 590B
EventLoop.cpp 1KB
Channel.cpp 1KB
util.h 232B
Socket.cpp 3KB
main.cpp 2KB
EventLoop.h 722B
Connection.cpp 2KB
Socket.h 650B
Timer
CMakeLists.txt 58B
Timer.h 1KB
Timer.cpp 2KB
Server.h 2KB
Epoll.h 623B
Server.cpp 5KB
Channel.h 991B
Buffer.h 652B
.gitignore 40B
util.cpp 196B
img.png 30KB
README.md 998B
Epoll.cpp 2KB
img_1.png 30KB
Acceptor.cpp 935B
Http
CMakeLists.txt 55B
Httpconn.h 944B
Httpconn.cpp 4KB
HttpResponse.h 1KB
HttpRequest.h 2KB
HttpRequest.cpp 7KB
HttpResponse.cpp 5KB
共 96 条
- 1
资源评论
龙年行大运
- 粉丝: 1008
- 资源: 3847
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功