QUdpSocket,当我在192.168.1.x时,如何从192.168.0.x读取广播消息

时间:2014-01-27 20:05:32

标签: c++ qt4 datagram qudpsocket

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

0 个答案:

没有答案