对此项目的代码进行了完整的注释,详细理解各个模块
- 使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor和模拟Proactor均实现) 的并发模型
- 使用状态机解析HTTP请求报文,支持解析GET和POST请求
- 访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件
- 实现同步/异步日志系统,记录服务器运行状态
- 经Webbench压力测试可以实现上万的并发连接数据交换
-
服务器测试环境
- Ubuntu版本16.04
- MySQL版本5.7.29
-
浏览器测试环境
- Windows、Linux均可
- Chrome
- FireFox
- 其他浏览器暂无测试
-
测试前确认已安装MySQL数据库
// 建立yourdb库 create database yourdb; // 创建user表 USE yourdb; CREATE TABLE user( username char(50) NULL, passwd char(50) NULL )ENGINE=InnoDB; // 添加数据 INSERT INTO user(username, passwd) VALUES('name', 'passwd');
-
修改main.cpp中的数据库初始化信息
//数据库登录名,密码,库名 string user = "root"; string passwd = "root"; string databasename = "yourdb";
-
build
sh ./build.sh
-
启动server
./server
-
浏览器端
ip:9006