QUDPSocket не может получить от удаленного Ethernet - PullRequest
1 голос
/ 27 февраля 2020

В настоящее время я пишу приложение для Windows 10 для чтения пакетов UDP с помощью QUDPSocket через Ethe rnet, адаптированный для удара молнии.

WireShark и Microsoft UDP Receiver / Sender видят правильные пакеты UDP и где находятся IP-адрес каждого отправителя, номер порта, локальный адрес IP и номер локального порта.

Но всякий раз, когда я пытаюсь использовать QUDPSocket, возникают проблемы с получением каких-либо пакетов. ReadyRead () никогда не сигнализируется.

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
    socket = new QUdpSocket(this);
    connect(socket, SIGNAL(readyRead()), this, SLOT(processPendingDatagrams()), Qt::QueuedConnection);
    socket->bind(QHostAddress::AnyIPv4, 56666);
}

void MainWindow::processPendingDatagrams()
{
    QByteArray array;
    QHostAddress sender;
    quint16 senderPort;


 while (socket->hasPendingDatagrams())
    {
        array.fill(0, socket->pendingDatagramSize());

        socket->readDatagram(array.data(),
                                array.size(),
                                &sender,
                                &senderPort);
        qDebug()<<socket->pendingDatagramSize();
    }
}

Я пробовал несколько версий привязки, но ни одна не работала. Спасибо за любую помощь заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...