linux qt udp接受广播,QT UDP组播与广播

一、组播编程步骤

1、接收方

(1) new一个UDP socket对象

(2)把socket bind到指定的IP: 端口号,因为本机会有多个IP,我们选择到底把哪个IP加入组播,如果想把本机所有的IP都加入组播,可bind这个IP:QHostAddress::AnyIPv4。

(3)加入到组播IP,函数为 joinMulticastGroup

(4)可随时退出该组播IP,函数为leaveMulticastGroup

2、发送方

与点对点的UDP编程步骤完全相同,不同之处只有一点:目标IP改成组播地址,端口号还是保持点对点的端口号。

3、效果

当发送方,向组播IP:PORT发送数据时,所有加入该组播IP的socket,都会收到这波数据,并且数据中仍然会携带发送方的IP:PORT。

当发送方,点对点发送、或者广播发送数据时,接收方情形不变。也即,接收方只会收到数据以及发送者的IP:PORT,但是并不知道这波数据是到底通过【点对点/组播/广播】哪一种接来的。

二、广播

发送方和接收方的编程步骤,与点对点完全相同。唯一区别在于,发送方的目标IP填:QHostAddress::Broadcast 或者 xxx.xxx.xxx.255。

QHostAddress::Broadcast 是向本机所在的所有IP网段广播,xxx.xxx.xxx.255是只向本机xxx.xxx.xxx网段广播。

点对点的UDP编程可参考我的另一篇博文《UDP编程模板》

5ade9f1321a0bc903bc5d2acb4347888.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值