0

我在 MACOS10.15 上使用 QT5.6.3。我有两个以太网接口。一个是 en0 ,另一个是 en6 。en0的IP是192.168.10.199,en6的IP是192.168.1.123。现在我需要从 en0 接收多播。多播组地址 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 加入多播组。就像通过接口加入多播组一样不起作用。请帮助我,谢谢。

4

1 回答 1

0

这是 Qt5.6.3 的错误。此错误已在 5.11 或更高版本中修复。

于 2020-02-29T07:23:56.490 回答