# HCECS **Repository Path**: goqt/HCECS ## Basic Information - **Project Name**: HCECS - **Description**: 采用QT6制作客户端,Linux C++实现后端(兼容Windows系统)。基于生产者-消费者模型的封装了线程池组件,设计数据库连接池优化了数据库的连接,实现了能够同时处理多用户的请求的高并发系统。通过自定义请求协议解决了TCP粘包问题,并采用公钥加密体系确保数据在传输过程中的保密性和完整性。 - **Primary Language**: C++ - **License**: BSL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-26 - **Last Updated**: 2025-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于C/S架构的高并发加密通信系统 #### 介绍 采用QT6制作客户端,Linux C++实现后端(兼容Windows系统)。基于生产者-消费者模型的封装了线程池组件,设计数据库连接池优化了数据库的连接,实现了能够同时处理多用户的请求的高并发系统。通过自定义请求协议解决了TCP粘包问题,并采用公钥加密体系确保数据在传输过程中的保密性和完整性。 ### 项目结构树状图 ``` chatRoom/ ├── LICENSE ├── README.md ├── database/ │ ├── database.cpp │ └── database.h ├── sslclient/ │ ├── build/ │ │ └── main.cpp │ ├── chat/ │ │ ├── chatclient.cpp │ │ ├── chatclient.h │ │ ├── user.cpp │ │ ├── user.h │ │ └── user.ui │ ├── config.txt │ ├── index/ │ │ ├── mainwindow.cpp │ │ ├── mainwindow.h │ │ └── mainwindow.ui │ ├── modify/ │ │ ├── modifyusermessage.cpp │ │ ├── modifyusermessage.h │ │ └── modifyusermessage.ui │ └── sslcllient.pro ├── sslserver/ │ ├── build/ │ │ └── main.cpp │ ├── certificate/ │ │ ├── server.crt │ │ ├── server.csr │ │ └── server.key │ ├── include/ │ │ ├── ChatServer.h │ │ ├── DataBase.h │ │ └── QSslServer.h │ ├── src/ │ │ ├── ChatServer.cpp │ │ ├── DataBase.cpp │ │ └── QSslServer.cpp │ └── sslserver.pro └── 证书私钥/ ├── CA证书相关/ │ ├── ca.crt │ ├── ca.key │ └── ca.srl ├── 客户端1-lovy相关/ │ ├── client1.crt │ ├── client1.csr │ └── client1.key ├── 客户端2-sun相关/ │ ├── client2.crt │ ├── client2.csr │ └── client2.key ├── 客户端3-rose相关/ │ ├── client3.crt │ ├── client3.csr │ └── client3.key └── 服务端证书相关/ ├── server.crt ├── server.csr └── server.key ``` ### 软件架构 本项目采用模块化的设计,主要分为以下几个模块: #### 1. **客户端模块 (`sslclient`)** - **功能**: 实现用户与服务器的通信,提供用户界面以进行聊天操作。 - **主要文件**: - `sslcllient.pro`: 客户端项目的 Qt 项目文件。 - `chat/`: 包含聊天客户端的实现代码。 - `index/`: 包含主界面的实现代码。 - `modify/`: 包含用户信息修改界面的实现代码。 #### 2. **服务器模块 (`sslserver`)** - **功能**: 处理客户端的连接请求,管理聊天数据,并确保通信的安全性。 - **主要文件**: - `sslserver.pro`: 服务器项目的 Qt 项目文件。 - `certificate/`: 包含服务器的 SSL 证书和私钥。 - `include/`: 包含服务器端的主要头文件。 - `src/`: 包含服务器端的主要源代码。 #### 3. **数据库模块 (`database`)** - **功能**: 提供数据的存储和查询功能,处理用户信息和聊天记录。 - **主要文件**: - `database.cpp`: 数据库操作的实现代码。 - `database.h`: 数据库操作的头文件。 #### 4. **证书和私钥模块 (`证书私钥`)** - **功能**: 包含项目中使用的 SSL 证书和私钥,确保通信的安全性。 - **主要文件**: - `CA证书相关/`: 包含 CA 证书和相关文件。 - `客户端1-lovy相关/`: 包含客户端1的证书和私钥。 - `客户端2-sun相关/`: 包含客户端2的证书和私钥。 - `客户端3-rose相关/`: 包含客户端3的证书和私钥。 - `服务端证书相关/`: 包含服务端的证书和私钥。 ### 安装教程 1. 克隆或下载本项目到本地。 2. 使用 Qt Creator 打开 `sslcllient.pro` 和 `sslserver.pro` 项目文件。 3. 根据需要配置 SSL 证书和私钥路径。 4. 编译并运行客户端和服务器项目。 ### 使用说明 1. 启动服务器 (`sslserver`)。 2. 启动客户端 (`sslclient`) 并连接到服务器。 3. 用户可以注册、登录并进行实时聊天。 ### 参与贡献 1. Fork 本仓库。 2. 新建 Feat_xxx 分支。 3. 提交代码。 4. 新建 Pull Request。 ### 特技 1. 使用 `Readme_XXX.md` 来支持不同的语言,例如 `Readme_en.md`, `Readme_zh.md`。 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com/)。 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目。 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目。 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)。 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)。