我正在尝试使用 QUdpSocket 发送数据报。以下是我正在使用的代码:
udpSocket = new QUdpSocket(this);
QByteArray datagram = "Message";
udpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 45454);
现在,如果我在一台只有一个网络适配器的计算机上运行它,它似乎可以正常工作。但是,如果有多个适配器,我需要能够控制哪个适配器用于发送数据报。我发现如果我按如下方式绑定套接字:
udpSocket->bind(QHostAddress("192.168.1.104"), 45454);
然后我可以强制将数据报发送到与该 IP 关联的本地网络上(否则它似乎是随机选择一个)。然而,“bind”函数设置套接字来侦听数据包,目前我对此并不感兴趣。这是控制使用哪个适配器的正确方法,还是有一些更直接的方法来做到这一点?
Thanks
你需要这样的东西
QHostAddress myBroadcastAddress = QHostAddress("192.168.255.255");
udpSocket->writeDatagram(datagram.data(),datagram.size(), myBroadcastAddress , 45454 )
这将发送 udp 广播数据包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)