qt c++ 局域网聊天小工具

dingChat 即时通信系统

概述

dingChat 是一个基于 Qt 框架开发的轻量级局域网即时通信系统,包含服务器端和客户端两部分。它提供了用户注册、登录认证、实时私聊以及在线用户列表同步等功能,适用于小型团队内部通信、学习 Qt 网络编程的示例项目。

主要功能

  • 用户管理:支持新用户注册,登录验证,注销退出;服务器使用 INI 文件持久化存储用户名和密码。
  • 在线状态同步:服务器实时维护在线用户列表,当用户登录或离线时,自动向所有在线客户端广播更新,确保每个用户都能看到当前在线伙伴。
  • 私聊通信 :双击在线用户列表中的任一用户,即可打开独立的私聊窗口;消息以 PRIVATE:目标用户:内容 格式发送,服务器准确路由给目标,并在双方窗口显示。
  • 服务器监控:服务器图形界面实时显示连接日志、用户操作记录和消息转发情况,方便管理员监控。
  • 多实例支持:同一台机器可同时运行多个客户端实例,使用不同账号登录,模拟多人聊天环境。

技术特点

  • 开发框架 :Qt 5.15 (或 Qt 6),利用 QTcpServer / QTcpSocket 实现 TCP 长连接通信。
  • 编程语言 :C++17,采用现代 C++ 特性(如 qAsConst、范围循环)确保代码简洁高效。
  • 数据存储 :服务器使用 QSettings 的 INI 格式保存注册用户,客户端用 QSettings 记录上次登录用户名。
  • 界面设计 :纯代码布局(无 .ui 文件),主窗口、登录对话框、私聊窗口均继承自 QWidget 或 QMainWindow,信号槽机制实现模块间解耦。
  • 协议设计:自定义简单文本协议,命令以换行符分隔,易于扩展(如添加群聊、文件传输)。
  • 跨平台:基于 Qt 的跨平台特性,可运行于 Windows、Linux、macOS。

应用场景

  • 企业或实验室局域网内部快速沟通工具。
  • 学习 Qt 网络编程、C/S 架构设计的教学范例。
  • 作为更复杂即时通信系统的原型基础。

项目结构

  • 服务器 :ChatServer 类负责监听连接、处理客户端请求、维护用户映射和广播列表。
  • 客户端 :ChatClient 主窗口显示在线用户;LoginDialog 处理注册登录;PrivateChatWindow 实现私聊界面。

dingChat 以其简洁的实现和完整的功能,为开发者提供了一个清晰理解 TCP 网络编程与 Qt 图形界面结合的优秀参考。

运行相关图片:

1、注册

2、主界面

3、添加好友

4、私聊对话框

5、好友/非好友列表状态显示(在线或离线)

6、服务器数据显示

7、用户数据持久保存配置文件(.ini),账户密码暂未作加密处理

相关推荐
朝朝辞暮i10 分钟前
C++ 第 33 课:事件循环——spin() 到底在干什么
开发语言·c++·算法
殷色玫瑰21 分钟前
AVL树:从平衡因子到四种旋转的完整实现
c语言·数据结构·c++·算法·visualstudio
进化中的刀盾兽1 小时前
从零实现 C++ AI 大模型接入 SDK(九):LLMManager 统一模型管理与请求路由
c++
会周易的程序员1 小时前
STVM OSAL 层架构设计文档
c++·物联网·嵌入式·虚拟机·iot·软plc·iec61131
.YM.Z1 小时前
C++——【红黑树】原理详解:定义、性质、插入变色与旋转实现
开发语言·c++
无名猿2 小时前
constexpr 能力扩张:从 C++11 到 C++20 的编译期计算
c++·性能优化·现代c++·编译期
007张三丰2 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·c语言·c++·内存管理
三月微暖寻春笋3 小时前
【和春笋一起学C++】(七十二)类模板
开发语言·c++·实例·类模板·使用类模板·数组模板
xlq223223 小时前
全面复习4
c++
殷色玫瑰3 小时前
C++ STL:map 与 set 详解——从底层红黑树到实际应用
c语言·数据结构·c++·算法·visualstudio·rpc