蜻蜓信使
一款基于 Qt 开发的局域网即时通讯软件,支持文字消息和文件传输。
功能特点
- 用户发现:通过 UDP 广播自动发现局域网内的在线用户
- 即时通讯:一对一文字聊天,支持表情和格式化消息
- 文件传输:支持发送任意格式的文件,自动处理文件名冲突
- 账号系统:支持用户注册和登录,密码安全加密存储
- 系统托盘:最小化到托盘,新消息通知
- 现代化界面:精美的渐变 UI,流畅的动画效果
项目结构
DgFlyChat/
├── src/ # 源代码目录
│ ├── main.cpp # 应用程序入口
│ ├── mainwindow.h/cpp # 主窗口
│ ├── chatwindow.h/cpp # 聊天窗口
│ ├── loginwindow.h/cpp # 登录窗口
│ ├── registerwindow.h/cpp # 注册窗口
│ ├── tcpclient.h/cpp # TCP 客户端
│ ├── tcpserver.h/cpp # TCP 服务器
│ ├── udpworker.h/cpp # UDP 用户发现
│ ├── user.h/cpp # 用户信息类
│ └── filemanager.h/cpp # 文件管理器
├── res/ # 资源目录
│ └── resources.qrc # Qt 资源文件
├── debug/ # 调试版本编译输出
├── release/ # 发布版本编译输出
└── DgFlyChat.pro # Qt 项目文件
编译与运行
环境要求
- Qt 5.x 或更高版本
- C++17 编译器
- Windows 系统
编译步骤
- 使用 Qt Creator 打开
DgFlyChat.pro - 选择 Debug 或 Release 构建套件
- 点击「构建」按钮编译项目
- 点击「运行」按钮启动程序
命令行编译
qmake DgFlyChat.pro
nmake # 使用 Visual Studio
# 或者
make # 使用 MinGW
使用说明
1. 用户注册
- 打开程序,点击「注册新账号」
- 填写用户名、昵称和密码
- 密码长度至少 6 位
- 点击「注册」完成注册
2. 用户登录
- 输入用户名和密码
- 勾选「记住密码」可以自动保存登录信息
- 点击「登录」进入主界面
3. 发现用户
- 程序启动后会自动通过 UDP 广播发现局域网内的在线用户
- 用户列表会实时更新,显示昵称和 IP 地址
4. 开始聊天
- 双击用户列表中的任意用户,打开聊天窗口
- 在输入框中输入消息,按回车或点击「发送」按钮
- 消息会显示在聊天记录中
5. 发送文件
- 在聊天窗口中点击「
」按钮 - 选择要发送的文件
- 文件会自动传输到对方电脑
6. 接收文件
- 接收到的文件会自动保存到「文档/蜻蜓信使接收文件」目录
- 如果文件名冲突,会自动重命名
核心模块说明
User 类
- 负责用户信息的封装和管理
- 支持序列化和反序列化
UDPWorker 类
- 负责 UDP 广播和用户发现
- 周期性发送在线广播,接收其他用户的上线/下线信息
TCPServer 类
- 负责监听 TCP 连接
- 处理消息和文件的接收
TCPClient 类
- 负责与其他用户建立 TCP 连接
- 发送消息和文件
FileManager 类
- 负责文件保存和路径管理
- 处理文件名冲突
开发日志
v1.0.0
实现用户注册和登录
实现 UDP 用户发现
实现 TCP 消息传输
实现文件传输功能
实现系统托盘
美化用户界面
许可证
本项目仅供学习和交流使用。