# 基于QT开发的快聊即时通讯系统 **Repository Path**: filewst/qt-chat-hub ## Basic Information - **Project Name**: 基于QT开发的快聊即时通讯系统 - **Description**: 基于Qt框架自主设计并开发了一套完整的即时通讯系统,采用C/S架构实现多用户实时通信。系统包含用户管理、好友关系、消息传输、文件共享等核心功能,实现了从网络通信到数据存储的全栈解决方案。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-02 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 互聊 项目简介 该项目旨在开发一个基于Qt框架的跨平台即时通讯聊天系统,实现用户注册、好友管理、实时文字聊天、图片和文件传输等功能。系统采用C/S架构,使用TCP协议进行通信,支持Windows和Linux平台。 使用指南 启动系统 先运行服务器程序:启动聊天服务器 运行客户端程序:启动聊天客户端 用户注册 在登录界面点击"注册"按钮 输入用户名、密码并选择头像 系统自动生成用户ID(请妥善保存) 用户登录 输入注册时分配的用户ID和密码 点击登录进入主界面 好友管理 添加好友:在通讯录界面输入好友ID添加 删除好友:在好友列表中选择好友删除 搜索好友:在搜索框中输入用户名或ID搜索 聊天功能 文字聊天:在聊天窗口输入文字后点击发送 发送图片:点击"发送图片"按钮选择图片文件 发送文件:点击"发送文件"按钮选择任意文件 查看历史:自动加载与好友的聊天记录 编译运行 依赖要求 # Qt开发框架 Qt >= 5.15.2 # C++编译器 GCC >= 9.3 或 MSVC >= 2019 # SQLite数据库 SQLite >= 3.30 编译命令 bash qmake client.pro mingw32-make qmake client.pro make 服务器编译 bash # 进入服务器目录 cd Server qmake server.pro make 运行说明 先启动服务器:在终端运行服务器程序 再启动客户端:运行客户端程序,配置服务器地址(默认:192.168.64.5:60000) 多客户端测试:可同时运行多个客户端进行多用户测试 文件结构 & 接口说明主要实现在w1文件夹中,其中包括了主要的源代码文件和项目配置。 项目根目录/ ├── Client/ # 客户端代码 │ ├── Sources/ # 源文件 │ │ ├── clientwindow.cpp # 主窗口逻辑 │ │ ├── login.cpp # 登录界面 │ │ ├── registerdialog.cpp # 注册界面 │ │ ├── contactsdialog.cpp # 通讯录 │ │ └── messagehandler.cpp # 消息处理器 │ ├── Headers/ # 头文件 │ │ ├── clientwindow.h │ │ ├── login.h │ │ ├── registerdialog.h │ │ ├── contactsdialog.h │ │ └── messagehandler.h │ ├── Forms/ # UI设计文件 │ │ ├── clientwindow.ui │ │ ├── login.ui │ │ ├── registerdialog.ui │ │ └── contactsdialog.ui │ └── Resources/ # 资源文件 │ └── img.qrc # 图片资源 ├── Server/ # 服务器代码 │ ├── Sources/ │ │ ├── chatserver.cpp # 服务器主逻辑 │ │ ├── databasemanager.cpp # 数据库管理 │ │ └── messagehandler.cpp # 消息处理器 │ └── Headers/ │ ├── chatserver.h │ ├── databasemanager.h │ └── messagehandler.h ├── Database/ # 数据库文件 │ └── chat_server.db # SQLite数据库 └── Build/ # 构建输出目录 主要接口说明 消息协议接口 cpp // 消息类型定义 enum MessageType { Register = 1, // 用户注册 Login = 2, // 用户登录 TextMessage = 3, // 文本消息 ImageMessage = 4, // 图片消息 FileMessage = 5, // 文件消息 AddFriend = 6, // 添加好友 RemoveFriend = 7, // 删除好友 GetFriendList = 8, // 获取好友列表 GetChatHistory = 9, // 获取聊天记录 DeleteChatHistory = 10 // 删除聊天记录 }; // 消息创建和解析 QByteArray createMessage(int type, const QJsonObject &data); QJsonObject parseMessage(const QByteArray &data); 数据库接口 cpp // 用户管理 bool registerUser(const QString &username, const QString &password, const QString &avatar); bool loginUser(const QString &userid, const QString &password); // 好友管理 bool addFriend(const QString &userid1, const QString &userid2); bool removeFriend(const QString &userid1, const QString &userid2); QJsonArray getFriendList(const QString &userid); // 消息管理 bool saveMessage(const QString &sender, const QString &receiver, const QString &type, const QString &content, const QString &filePath = ""); QJsonArray getChatHistory(const QString &user1, const QString &user2); 配置文件说明 服务器配置 ini # 服务器监听地址和端口 server_ip = 192.168.64.5 server_port = 60000 # 数据库配置 database_name = chat_server.db max_connections = 1000 客户端配置 ini # 服务器连接配置 server_address = 192.168.64.5 server_port = 60000 # 本地设置 download_path = ./Download auto_login = false 常见问题与解决方案 Q1: 无法连接到服务器 解决方法: 确认服务器已启动 检查防火墙设置,确保60000端口开放 确认服务器IP地址配置正确 Q2: 图片无法显示 解决方法: 检查图片文件格式是否支持(JPG、PNG、BMP) 查看下载目录权限 检查网络连接是否稳定 Q3: 好友列表不更新 解决方法: 点击刷新按钮重新加载好友列表 检查网络连接 重新登录账户 Q4: 文件传输失败 解决方法: 检查文件大小是否超过限制(10MB) 确认有足够的磁盘空间 检查网络连接质量 技术要点 1. 网络通信 使用TCP协议保证可靠传输 心跳包机制维持长连接 JSON格式数据交换 2. 数据存储 SQLite轻量级数据库 消息历史本地缓存 文件分片传输 3. 界面设计 Qt信号槽机制 多线程处理网络通信 响应式布局设计 更新日志 v1.0.0 (2024.11.29) 实现用户注册和登录功能 完成好友管理系统 实现文本消息实时聊天 添加图片和文件传输功能 完成基础界面设计 v0.9.0 (2024.11.28) 搭建项目基础框架 设计消息协议格式 实现TCP通信基础模块 创建数据库表结构 v0.8.0 (2024.11.27) 设计UI界面原型 制定开发计划 确定技术架构方案 👨‍💻 作者信息 吴述庭 📧 邮箱:3310472327@qq.com 📱 电话:18586524241 🎓 贵州民族大学 人工智能专业 2025届 💼 求职意向:嵌入式软件工程师 📄 开源协议 本项目遵循MIT开源协议,仅供学习交流使用,未经授权不得用于商业用途。