Qt не может присоединиться к многоадресной группе указанного networkInterface - PullRequest
0 голосов
/ 28 февраля 2020

Я использую QT5.6.3 на MACOS10.15. У меня есть два интерфейса rnet. Один - en0, другой - en6. IP-адрес en0 - 192.168.10.199, IP-адрес en6 - 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 присоединиться к группе многоадресной рассылки. Как и joinMulticastGroup, интерфейс не работает. Пожалуйста, помогите мне, спасибо.

1 Ответ

0 голосов
/ 29 февраля 2020

Это ошибка Qt5.6.3. Эта ошибка исправлена ​​в 5.11 или более поздней версии.

...