[gelöst] Sender eines empfangenen Broadcast UDP Datagrams

Alles rund um die Programmierung mit Qt
Antworten
iphenion
Beiträge: 17
Registriert: 4. Januar 2008 15:40
Wohnort: Wetter
Kontaktdaten:

[gelöst] Sender eines empfangenen Broadcast UDP Datagrams

Beitrag 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
Zuletzt geändert von iphenion am 23. Mai 2011 22:56, insgesamt 2-mal geändert.
iphenion
Beiträge: 17
Registriert: 4. Januar 2008 15:40
Wohnort: Wetter
Kontaktdaten:

Beitrag 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
Antworten