B站视频讲解https://www.bilibili.com/video/BV1zNvkeAEZy/
GitHub源码https://github.com/KeepTryingTo/QT_Learning/tree/main/QtTcpGroupChat
本文主要是使用QT基于TCP协议实现一个简单的群聊功能,虽然是一个简单的群聊功能,但是涉及的东西和逻辑性的东西比较多,因此建议初学者首先将前面关于QT6.6.0 实现服务端Server和多个客户端Client互相发送文件信息的知识点看明白之后,再来看本篇文章是比较容易理解的。
以下这幅图是理解的关键,思路是如下:
- 服务端处于监听状态,然后多个客户端连接服务端;
- 如果有一个客户端发送消息,那么首先发送给服务端,服务端再将消息分别发送给其他的客户端(包括发送消息客户端自身);
- 模拟了多个客户端再同一个群里面聊天的功能;
- 同时服务端会将当前处于连接状态的客户端ID分别发送到各个客户端,客户端接收并显示当前在线的客户端ID和在线时间,和在线人数。
QtTcpGroupChat