# reactorServer **Repository Path**: geekDebug/reactor-server ## Basic Information - **Project Name**: reactorServer - **Description**: 基于C11标准开发的多反应堆高并发服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2024-06-26 - **Last Updated**: 2024-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # reactorServer #### 介绍 基于C11标准开发的多反应堆高并发服务器, 运行在Linux环境下 #### 软件架构 * **EventLoop模块:** 分为主反应堆和子反应堆,主反应堆用于负责监听客户端的连接请求,子反应堆用于处理客户端的http请求和组织响应; * **Dispathch模块:** 作为事件分发器的抽象层,实现了事件分发的多态性,提供统一的接口供上层进行调用,具体的分发策略由其子类实现。基于select,poll,epoll实现了三个事件分发器模块; * **ThreadPool模块:** 维护多个子线程,每个子线程负责一个子反应堆的运行;主线程负责主反应堆的运行; * **TcpServer模块**:拥有一个主反应堆,用于监听客户端的连接请求,并将建立的连接封装成channel分发给子反应堆进行处理; * **TcpConnection模块:** 将客户端的连接进行封装,使用HTTP协议对客户端请求进行处理和回复; * **HttpRequest与HttpResponse模块:** 对客户端的Http请求 进行解析并且回复相应的数据; * **Channel模块:** 该模块分装了客户端连接的详细信息,包括文件描述符,事件类型以及对应的事件处理回调函数,便于服务器对每个客户端连接进行管理; * **Buffer模块:** 作为套接字通信的缓冲区,用于完成接收客户端发送过来的数据以及回复客户端数据的缓冲区;