Я пытаюсь перехватить некоторые тестовые широковещательные сообщения с 192.168.0.xxx, пока я нахожусь на 192.168.1.xxx
У меня есть устройство, которое отправляет широковещательные тестовые пакеты от 192.168.0.1 до 192.168.0.255.
Мое приложение находится на 192.168.1.70 и пытается получить широковещательный UDP, используя один и тот же номер порта для обоих.
У меня работает WireShark, и я вижу правильные пакеты с устройства, идущие от … 0,1 до … 0,255. Однако я не могу подобрать его по коду из … 1.70.
Вот пример тестового кода, который я использую на … 1.70.
QUdpSocket *udpSocket = new QUdpSocket(this);
udpSocket->bind(PortValue, QUdpSocket::ShareAddress); //PortValue = 47808
while (1) {
if (udpSocket->hasPendingDatagrams()) {
QByteArray datagram;
QString Msg;
datagram.resize(udpSocket->pendingDatagramSize());
udpInSocket->readDatagram(datagram.data(), datagram.size());
for (uint32_t n = 0; n < datagram.count(); n++) {
Msg += QString::number((datagram[n] & 0xff), 16) + " ";
}
qDebug() << "Datagram: " << Msg;
Pause->msleep(1); //1 msec
}
}
Задача ещё не решена.
Других решений пока нет …