0

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

0 回答 0