Seite 1 von 1

Gerichtetes UDP unter Linux funktioniert nicht

Verfasst: 2. Februar 2011 11:22
von mikerichter
Hallo Leute,

das Qt Demo Broadcast Sender und Receiver funktioniert unter Windows und Linux.

Ändere ich beim Receiver die Zeile:

Code: Alles auswählen

udpSocket->bind(45454, QUdpSocket::ShareAddress);
in

Code: Alles auswählen

udpSocket->bind(QHostAddress("192.168.1.1"), 45454, QUdpSocket::ShareAddress);
funktioniert der Receiver unter Linux nicht mehr (unter Windows funktioniert es immernoch).
Die bind()-Funktion liefert true zurück, aber es werden beim readDatagram() keine Daten empfangen.

Hat jemand eine Lösung dafür?

Danke und Gruß
Mike

Verfasst: 2. Februar 2011 12:42
von kater
Vllt. weil auf der IP 192.168.1.1 keine Daten eingehen? Mehrere Netzwerkkarten im System? An welche IP werden die Daten gesendet?

Verfasst: 2. Februar 2011 13:53
von mikerichter
Es ist nur eine Netzwerkkate im System.
Die Daten werden an die Broadcast-Adresse geschickt.

Verfasst: 2. Februar 2011 16:07
von kater
Na dann schick sie an 192.168.1.1

Verfasst: 2. Februar 2011 16:43
von mikerichter
Der Sender kennt die Adresse nicht und schickt desshalb das Paket an die Broadcastadresse.

Ich möchte wissen, warum der identische Code unter Windows funktioniert und unter Linux nicht?

Verfasst: 2. Februar 2011 17:02
von Curtis Newton
mikerichter hat geschrieben:Der Sender kennt die Adresse nicht und schickt desshalb das Paket an die Broadcastadresse.

Ich möchte wissen, warum der identische Code unter Windows funktioniert und unter Linux nicht?
Hat denn der Sender mehrere Karten? Was sagt Etheral? Kommt die Nachricht überhaupt an?

C.

Verfasst: 2. Februar 2011 17:08
von mikerichter
Der Sender hat auch nur eine Karte.
Ich habe mit Wireshark die Pakete auf dem Zeilrechner empfangen.

Verfasst: 3. Februar 2011 00:57
von padreigh
vielleicht ist die 192.168.1.1 nicht die broadcast adresse unter linux? Versuch mal 192.168.1.255 zum Broadcasten dort ... das ist es zumindest hier bei mir ......