Gerichtetes UDP unter Linux funktioniert nicht

Alles rund um die Programmierung mit Qt
Antworten
mikerichter
Beiträge: 4
Registriert: 1. Februar 2011 17:28

Gerichtetes UDP unter Linux funktioniert nicht

Beitrag 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
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag 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?
mikerichter
Beiträge: 4
Registriert: 1. Februar 2011 17:28

Beitrag von mikerichter »

Es ist nur eine Netzwerkkate im System.
Die Daten werden an die Broadcast-Adresse geschickt.
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Na dann schick sie an 192.168.1.1
mikerichter
Beiträge: 4
Registriert: 1. Februar 2011 17:28

Beitrag 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?
Curtis Newton
Beiträge: 122
Registriert: 11. Juni 2008 18:39

Beitrag 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.
mikerichter
Beiträge: 4
Registriert: 1. Februar 2011 17:28

Beitrag von mikerichter »

Der Sender hat auch nur eine Karte.
Ich habe mit Wireshark die Pakete auf dem Zeilrechner empfangen.
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag 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 ......
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
Antworten