用C++实现的简单WEB服务器
-
利用IO复用技术Epoll与线程池实现多线程的Reactor高并发模型;
-
利用正则与状态机解析HTTP请求报文,实现处理静态资源的请求;
-
基于小根堆实现的定时器,关闭超时的非活动连接;
-
利用单例模式与阻塞队列实现异步的日志系统,记录服务器运行状态;
-
利用RAII机制实现了数据库连接池,减少数据库连接建立与关闭的开销,同时实现了用户注册登录功能。
-
Linux
-
C++14
-
MySql
需要先配置好对应的数据库
// 建立yourdb库
create database yourdb;
// 创建user表
USE yourdb;
CREATE TABLE user(
username char(50) NULL,
password char(50) NULL
)ENGINE=InnoDB;
// 添加数据
INSERT INTO user(username, password) VALUES('name', 'password');
mkdir build
cd build
cmake ..
make
./bin/server