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