Qt网络-UDP概述(一)

1. UDP概述

UDP是轻量的、不可靠的、面向数据报的、无连接的协议,通常用于对可靠性要求不高、对速度要求较高的场合。相对于TCP通信,UDP通信不需要事先建立socket连接,UDP每次发送数据都需要指定目标地址和端口。UDP以数据报传输数据,而不是以连续的数据流。数据报大小一般小于512字节,每个数据包包含发送者和接收者的IP地址和端口等信息。

2. UDP通信三种模式

  • 单播(unicast)模式:一个UDP客户端发出的数据报只发送到另一个指定IP地址和端口的UDP客户端,一对一传输。
  • 广播(broadcast)模式:一个UDP客户端发出的数据报,在同一网络范围内其他所有的UDP客户端都可以收到。要获取广播数据只需要在数据报中指定接收端地址为QHostAddress::Broadcast,一般的广播地址是255.255.255.255。
  • 组播(multicast)模式:也称为多播。UDP客户端加入到另一个组播IP地址指定的多播组,成员向组播地址发送的数据报组内成员都可以接收到,类似于QQ群功能。

在单播、广播、多播模式下,UDP程序都是对等的,没有TCP中服务器和客户端之分。

在这里插入图片描述

3. QUdpSocket


bool bind(quint16 port = 0, BindMode mode = DefaultForPlatform)
为UDP通信绑定一个端口

qint64 writeDatagram(const QByteArray &datagram, const QHostAddress &host, quint16 port)
向指定的目标地址和端口的UDP客户端发送数据报,返回成功发送的字节数

bool hasPendingDatagrams() const
当至少有一个数据报需要读取时,返回true

qint64 pendingDatagramSize() const
返回待读取的数据报的大小

qint64 readDatagram(char *data, qint64 maxSize, QHostAddress *address = Q_NULLPTR, quint16 *port = Q_NULLPTR)
读取一个数据报,返回成功读取的数据报的字节数


bool joinMulticastGroup(const QHostAddress &groupAddress)
加入一个多播组

bool leaveMulticastGroup(const QHostAddress &groupAddress)
离开一个多播组

4. 单播和广播程序

在这里插入图片描述
程序代码:Qt-UDP,QUdpSocket单播和广播程序实现
Qt5.9开发指南,强化Qt基础知识笔记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VectorAL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值