我正在尝试从 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
}
}