QT 6.6.0基于UDP协议实现群聊功能(过程详解)

B站视频讲解基于UDP协议的群聊功能实现icon-default.png?t=N7T8https://www.bilibili.com/video/BV1zNvkeAEZy?p=17

GitHub源码icon-default.png?t=N7T8https://github.com/KeepTryingTo/QT_Learning/tree/main/QtUDPSocket/QtGroupChat

QT初学案例教程
QT6.6.0实现打开电脑摄像头或其他的外接摄像头(实现拍照功能)
QT6.6.0实现简单的录音器
QT6.6.0实现一个简单的视频和音频播放器
T6.6.0实现简单的视频录制(包含语音录制)器
QT6.6.0关于QMediaMetaData功能以及列子说明使用方法
QT6.6.0实现QtCamera功能(拍照,录像以及图像和视频的相关配置)
T6.6.0实现更好的视频播放器(前期改进)
QT6.6.0实现图表如饼图,柱状图,散点图以及盒图等的基本使用
QT6.6.0实现客户端Socket编程以及socket测试软件通信
QT6.6.0 实现服务端Server和多个客户端Client通信以及socket测试软件通信
QT6.6.0 实现QNetworkAccessManager的基本应用以及其拓展使用
QT6.6.0 实现服务端Server和多个客户端Client互相发送文件信息
QT6.6.0和QT6.0以下的版本实现FTP文件上传和下载(过程详解)
QT6.6.0实现QNetworkInterface网络接口,QHostAddress网络地址IP以及域名解析等相关信息查询。
QT6.6.0基于QTcpSocket和QTcpServer实现多个客户端群聊
QT6.6.0实现基于UDP协议的简单通信(过程详解)
QT 6.6.0基于UDP协议实现广播和多播机制(过程详解)

本文主要是基于UDP协议来实现的群聊功能,主要是利用了UDP协议的广播机制,因此读者在阅读本文之前,建议读者首先去了解一下前面几篇博文关于UDP协议的知识点,本文是基于前面几篇博文来实现的。

1.实现的思路如下:假设这里有5个主机,每个主机打开一个客户端界面,然后进行群聊,每个主机都可以看到当前哪些主机在线以及上线时间。

  • 由于我们这里实际只有一台主机,要模拟多台主机的话,在UDP协议中绑定IP和端口的过程,采用QT中提供的共享地址和端口的机制QAbstractSocket::ShareAddress | QAbstractSocket::ReuseAddressHint。也就是打开多个程序运行界面,就可以使用相同的地址以及IP绑定。 

     
  • 由于是群聊,发送的消息是大家(包括自己)都能看到,因此,采用广播机制,在发送过程所指定的IP和端口所有都是一样的。 

     
  • 由于每个客户端用户都可以看到当前所有在线用户以及上线时间,因此在打开程序(客户端上线)都需要向所有其他在线用户发送一个上线用户socketID(套接字ID)以及时间,关于具体的实现请看代码。 

     

   

Qt中基于UDP协议的群聊功能

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值