QT6.6.0实现基于UDP协议的简单通信(过程详解)

B站视频讲解icon-default.png?t=N7T8https://www.bilibili.com/video/BV1zNvkeAEZy?p=14

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

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实现多个客户端群聊

本篇博文主要是介绍基于UDP协议的简单通信,相关的文章也有很多,本文不仅仅让读者理解UDP协议的通信大致流程,而且对UDP和TCP协议之间的通信流程区别。通过demo视频的方式给搭建呈现出来,便于直观的了解。

1.绑定IP和端口

  • 客户端如果要向服务端发送消息的话,首先需要绑定特定IP以及本机端口(该端口用于监听进入的UDP数据包)。
  • 服务端同样需要绑定特定IP和本机端口(这里服务端本机端口和客户端不要求一样),服务端和客户端才能建立通信。
  • 根据双方绑定的IP和端口发送消息给对方,比如当前客户端绑定的IP为127.0.0.1,绑定的本机端口为8080,如果服务端要给客户端发送消息,那么服务端所指定的接收者端口以及IP必须为127.0.0.1和8080,因为客户端就是使用8080端口来监听来自服务端UDP数据包。

2.从给定IP和端口接收消息

  • 根据接受的消息,确定对方IP以及端口。
  • 如果第一步服务端和客户端已经了连接,那么第二步其实是不需要单独写出来,只是为了大家方便理解。

3.理解了上面UDP协议通信流程之后,从如下图可以看到,只需要实现绑定端口以及IP等功能,然后开启两个界面即可进行客户端和服务端的通信,不需要像TCP协议那样,服务端和客户端分开实现。 

Qt中基于UDP协议的通信

附加内容 

TCP和UDP特性

特性

TCP

UDP

可靠性

TCP保证数据的可靠传输,通过重传机制和确认机制避免数据丢失或损坏

UDP不提供重传和确认机制,数据传输不可靠

顺序性

TCP保证数据按照发送的顺序进行传输,接收端可以按照相同顺序重组数据

UDP数据报独立发送,接收端无法保证数据按照发送顺序接收

流量控制

TCP使用滑动窗口机制来控制发送端的数据量,避免接收端缓冲区溢出

没有流量控制机制

无连接

需要事先建立连接(三次握手机制)

UDP不需要进行连接的建立和维护,数据报独立发送

TCP和UDP优缺点
TCPUDP

优点:

可靠性高:通过重传和确认机制保证数据的可靠性,适用于对数据完整性要求高的应用场景。
顺序性强:保证数据按照发送顺序传输,适用于需要按序处理的应用场景。

缺点:

开销大: TCP 需要建立连接、维护状态和进行确认,占用较多的网络资源。
传输速度相对较慢:由于提供可靠性保证, TCP 的传输速度相对较慢。

优点:

传输速度快:无需建立连接和提供可靠性保证,适用于实时性要求较高的应用场景。
开销小: UDP 不需要维护连接状态和进行确认,占用较少的网络资源。

缺点

不可靠性高:由于无重传和确认机制,数据传输可能丢失或损坏。
顺序性差: UDP 数据报独立发送,接收端无法保证数据按照发送顺序接收。

socket测试软件下载icon-default.png?t=N7T8https://www.hw-group.com/software/hercules-setup-utility

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值