Seite 1 von 1

[gelöst] Sender eines empfangenen Broadcast UDP Datagrams

Verfasst: 23. Mai 2011 21:58
von iphenion
Hallo zusammen,

kann ich über den QUdpSocket ermitteln, woher ein eben empfangenes Datenpaket gekommen ist, das an die Broadcast Addresse versendet wurde?
Ich gehe vor, wie im Qt Broadcast sender/receiver Example beschrieben.

Mein Receiver Socket liegt folgendermaßen auf der Lauer:

Code: Alles auswählen

udpSocket->bind(10011, QUdpSocket::ShareAddress);
empfange die Daten nach einem readyRead() Signal dann so:

Code: Alles auswählen

void Receiver::slot_process_datagram()
 {
     while (udpSocket->hasPendingDatagrams()) {
         QByteArray datagram;
         datagram.resize(udpSocket->pendingDatagramSize());
         udpSocket->readDatagram(datagram.data(), datagram.size());
     }
 }


Aber wie bekomme ich jetzt raus, von welcher IP die Daten kamen?

udpSocket->peerAddress() liefert QHostAddress::Null, da keine Verbindung existiert.

Gruß, Peter

Verfasst: 23. Mai 2011 22:06
von iphenion
Hmm, wie blind kann man sein:
Ich sehe eben, dass ich Pointer in der readDatagram() Funktion angeben
kann. Werde das jetzt ausprobieren.

Code: Alles auswählen

qint64 QUdpSocket::readDatagram ( char * data, qint64 maxSize, QHostAddress * address = 0, quint16 * port = 0 )
Denke mal, das ist genau was ich brauche

Gruß, Peter