我在MACOS10.15上使用QT5.6.3。我有两个以太网接口。一个是en0,另一个是en6。En0的IP是192.168.10.199,EN6的IP是192.168.1.123。现在我需要从en0 .the多播组地址239.255.255.251接收多播,多播端口为47810。以下是我的简化代码:
groupAddress = QHostAddress("239.255.255.251");
QNetworkInterface _interface = QNetworkInterface::interfaceFromName("en6");
udpSocket = new QUdpSocket(this);
udpSocket->bind(QHostAddress::AnyIPv4, 47810, QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint );
//I am sure the _interface is en6
udpSocket->setMulticastInterface(_interface);
udpSocket->joinMulticastGroup(groupAddress,_interface));但是,我使用netstat命令,我发现en0加入了组播组,而不是我指定的en6
IPv4 Multicast Group Memberships
Group Link-layer Address Netif
224.0.0.251 <none> lo0
224.0.0.1 <none> lo0
**239.255.255.251 1:0:5e:7f:ff:fb en0**
224.0.0.1 1:0:5e:0:0:1 en0
224.0.0.251 1:0:5e:0:0:fb en0
224.0.0.251 1:0:5e:0:0:fb en6
224.0.0.1 1:0:5e:0:0:1 en6如何让en6像joinMulticastGroup一样加入组播组.It接口不起作用。请帮帮我,谢谢。
发布于 2020-02-29 15:23:56
这是Qt5.6.3的bug。此错误已在5.11或更高版本中修复。
https://stackoverflow.com/questions/60453908
复制相似问题