# DWChat **Repository Path**: zhoudawei666/dwchat ## Basic Information - **Project Name**: DWChat - **Description**: 仿微信聊天软件,基于QT/C++开发 - **Primary Language**: C/C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2024-05-30 - **Last Updated**: 2026-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, Qt ## README # DWChat #### 介绍 DWChat 是一款仿 QQ 聊天软件的即时通讯应用,基于 QT/C++ 开发。客户端采用 Qt 框架构建,支持广域网通信,可以实现跨网络的实时聊天功能。服务端采用 C++ 实现,后端采用 Java Spring Boot 框架处理微信公众平台的登录认证。 #### 软件架构 DWChat 项目采用多模块架构设计,包含以下核心组件: **1. 客户端 (client/)** - 基于 Qt5 开发桌面应用程序 - 实现聊天消息收发、文件传输、音视频通话功能 - 支持表情发送、图片传输等常用聊天功能 **2. 服务端 (Server/)** - C++ 编写的 TCP/UDP 服务器 - 处理客户端连接、消息转发 - 支持文件传输线程管理 **3. 后端服务 (WxChat/)** - Java Spring Boot 应用 - 微信公众号扫码登录后端服务 - 消息处理工厂模式设计 - 支持文本消息处理、关注/取消关注事件处理 **4. 算法库 (Algorithm/)** - 密码加密模块 (encipher):包含盐值生成、密码哈希、密码验证 - 验证码模块 (authcode):邮箱验证码生成与验证 - 登录模块 (wxlogin):微信登录 UUID 获取 - 聊天机器人 (chatbot):集成第三方 API 的智能回复 - 归档模块 (archive):数据库连接与操作 #### 技术栈 - **客户端**:Qt5.12、C++ - **服务端**:C++、TCP/UDP Socket 编程 - **后端**:Java、Spring Boot、Maven - **数据库**:SQL (通过 Archive 模块连接) - **认证**:微信公众号扫码登录 #### 安装教程 **环境要求:** 1. Qt 5.12 或更高版本 2. Java JDK 8+ 3. Maven 3.x 4. MySQL 数据库 5. 微信公众号服务号(用于扫码登录) **编译步骤:** 1. **编译后端服务** ```bash cd WxChat mvn clean package -DskipTests ``` 编译完成后在 target 目录生成 WxChat.jar 2. **配置后端服务** 编辑 `WxChat/src/main/resources/application.yml`,配置数据库连接、微信公众号参数等 3. **编译客户端** - 使用 Qt Creator 打开 `DWChat.pro` 项目文件 - 配置编译套件并构建项目 - 或使用命令行:`qmake && make` 4. **部署服务端** - 编译 Server 模块 - 确保服务器开放 80 端口(HTTP)和 5555 端口(Socket 通信) #### 使用说明 1. **启动顺序**:先运行服务器端,再运行客户端 2. **登录方式**: - 使用微信公众号扫码登录 - 扫描服务端配置的公众号二维码完成认证 3. **主要功能**: - 文字聊天:发送和接收文本消息 - 表情发送:支持表情包发送 - 图片传输:支持图片文件收发 - 文件传输:支持任意文件传输 - 视频通话:支持 UDP 视频传输(部分功能) - 智能回复:集成聊天机器人功能 4. **客户端操作**: - 界面左侧为好友列表 - 点击好友进入聊天窗口 - 底部输入框发送消息 - 支持快捷键操作 #### 项目结构 ``` DWChat/ ├── Algorithm/ # 算法与工具库 │ ├── Headers/ # 头文件 │ ├── Sources/ # 源文件 │ └── UI/ # Qt UI 文件 ├── Server/ # C++ 服务器端 │ ├── Headers/ # 头文件 │ └── Sources/ # 源文件 ├── WxChat/ # Java 后端服务 │ └── src/main/java/ # Java 源码 └── client/ # Qt 客户端 ├── Headers/ # 头文件 ├── Sources/ # 源文件 ├── UI/ # Qt UI 文件 └── Images/ # 资源图片 ``` #### 注意事项 - 服务器需要公网 IP 或配置端口转发才能实现广域网通信 - 微信公众号需要完成微信认证并配置服务器回调地址 - 首次使用请确保防火墙已开放相应端口