定义了一个 WebServer 类
通过整个服务器程序的主控逻辑与核心调度模块,实现了一个高性能、可配置、支持 Reactor/Proactor 双模式的微型 Web 服务器。
封装内容
- 构造函数初始化所有成员为安全初值
- 析构函数释放所有动态资源
void init()函数接收用户配置参数void trig_mode()函数设置 epoll 触发模式void log_write()函数初始化日志系统void sql_pool()函数创建 MYSQL 连接池void thread_pool()函数创建线程池,后续 HTTP 请求对象提交给线程池异步处理void eventListen()函数完成网络监听准备void eventLoop()函数主事件循环bool dealclientdata()函数处理新客户端连接bool dealwithsignal()函数从信号管道读取信号void dealwithread()函数处理可读事件void dealwithwrite()函数处理可写事件void timer()函数为新连接创建定时器
核心函数
void init(int port, std::string user, std::string passWord, std::string databaseName, int log_write, int opt_linger, int trigmode, int sql_num, int thread_num, int close_log, int actor_model);
- init() 函数初始化端口,数据库,日志,触发模式,线程数,其否启用 Reactor 模式
void trig_mode()设置 listenfd 和 connfd 的 epoll 触发模式log_write()初始化日志系统(单例 Log)sql_pool():创建 MySQL 连接池,并初始化用户表缓存thread_pool()创建threadpool<http_conn>,用于异步处理请求eventListen()创建监听 socket、epoll、信号管道、设置信号处理
- void eventLoop() 网络事件循环,基于 epoll_wait 实现高性能 I/O 多路复用
| 事件类型 | 处理函数 | 说明 |
|---|---|---|
| 新连接 () |


