Wie kann ich das senden und empfangen von UDP-Paketen in QT

Schreibe ich eine kleine Anwendung in QT, sendet ein UDP-Paket die Sendung über das lokale Netzwerk und wartet auf eine UDP-Antwort-Paket aus einem oder mehreren Geräten über das Netzwerk.

Erstellen des sockets und das senden der broadcast-Paket.

udpSocketSend = new QUdpSocket(this);
udpSocketGet  = new QUdpSocket(this);
bcast = new QHostAddress("192.168.1.255");

udpSocketSend->connectToHost(*bcast,65001,QIODevice::ReadWrite);
udpSocketGet->bind(udpSocketSend->localPort());
connect(udpSocketGet,SIGNAL(readyRead()),this,SLOT(readPendingDatagrams()));

QByteArray *datagram = makeNewDatagram(); //data from external function
udpSocketSend->write(*datagram);

Die Anwendung sendet das Paket richtig und die Reaktion Paket ankommt, aber die readPendingDatagrams() Funktion wird nie aufgerufen. Ich habe überprüft die Pakete werden gesendet und empfangen über Wireshark und die Anwendung hört auf den port, angegeben in wireshark, Process Explorer.

InformationsquelleAutor zuwgap | 2011-06-29
Schreibe einen Kommentar