Laden...

SocketException bei Broadcast

Erstellt von Dawamaha vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.142 Views
D
Dawamaha Themenstarter:in
53 Beiträge seit 2009
vor 14 Jahren
SocketException bei Broadcast

Ich möchte einen Broadcast mit folgendem Code senden, um alle Computer im LAN zu erkennen, die ein bestimmtes Programm ausführen:


void SendBroadcast()
{
            TcpClient client = new TcpClient(System.Net.IPAddress.Broadcast.ToString(), 9876);
            client.GetStream();
}

Ich bekomme aber bei der Initialisierung des TcpClients eine Exception, die sagt, die Adresse 255.255.255.255 sei im aktuellen Kontext ungültig. Firewall ist natürlich offen, hab es auch mit anderen Ports versucht, aber mit anderen IP-Adressen funktioniert es.

Mit freundlichen Grüßen,
Dawamaha

185 Beiträge seit 2005
vor 14 Jahren

Ein Broadcast sendest du auch nicht an 255.255.255.255 sondern an dein Netz und die Adresse 255

z.b. 192.168.0.255

D
Dawamaha Themenstarter:in
53 Beiträge seit 2009
vor 14 Jahren

Aber auch da sagt er mir, 192.168.137.255 sei ungültig. ?( ?( ?(

I
1.739 Beiträge seit 2005
vor 14 Jahren

Dann liegt es an der Netzwerkkonfiguration.
Um welche Netzwerkklasse geht es? Broadcast und Multicast sind bei TCP ähm eingeschänkt.

D
Dawamaha Themenstarter:in
53 Beiträge seit 2009
vor 14 Jahren

Was meinst du mit Netzwerkklasse? Normalerweise Ethernet,aber in diesem Testfall WLAN Ad-Hoc. Kann es vielleicht daran liegen?

I
1.739 Beiträge seit 2005
vor 14 Jahren

Netzwerkklasse: A, B, C, D.

Broadcast wie?
edit: Vielleicht wäre UDP für deine Zwecke besser geeignet?

D
Dawamaha Themenstarter:in
53 Beiträge seit 2009
vor 14 Jahren

Stinknormales Klasse C-LAN. Aber ist doch eigentlich unerheblich, weil es doch garnicht um das Internet geht, oder? Wie gesagt: 192.168.137.0, später dann 192.168.2.0 . Es soll einfach ein Broadcast mit 6 Bytes werden, das an alle PCs im LAN geschickt wird.
P.S. Es soll schon TCP sein, weil ich nachher auch ganze Dateien versenden möchte.

S
72 Beiträge seit 2006
vor 14 Jahren

Ich bekomme aber bei der Initialisierung des TcpClients eine Exception, die sagt, die Adresse 255.255.255.255 sei im aktuellen Kontext ungültig.

Was auch ziemlich einleuchtend ist, bedenkt man das du versuchst mit TCP eine Broadcastadresse anzusprechen. 🤔

Ich vermute dir ist das Prinzip eines Broadcastes gänzlich unbekannt.

Ich empfehle dir erstmal die theoretischen Grundlagen zu lernen.

Außerdem wäre es ratsam TCP zu verstehen, TCP ist eine Punkt-zu-Punkt Verbindung, also immer ein Unicast!

Guckst du hier:

http://www.codeplanet.eu/tutorials/csharp/4-tcp-ip-socket-programmierung-in-csharp.html?start=3

“Ene mene mu und raus bist Du!”

D
Dawamaha Themenstarter:in
53 Beiträge seit 2009
vor 14 Jahren

Achso, OK. Leuchtet auch ein. Eine andere Möglichkeit gibt es aber nicht, oder? Dann muss ich die PCs manuell suchen. Trotzdem vielen Dank für eure Hilfe!

S
72 Beiträge seit 2006
vor 14 Jahren

Da ich absolut keine Ahnung habe was du vorhast, kann ich dir auch keinen vernünftigen Ratschlag geben.

Du kannst allerdings mit UDP einen Broadcast im Netz realisieren und dir von den beteiligten Rechnern auf diese Weise die Adresse für eine anschließende TCP-Verbindung zusenden lassen.

Das sind aber anwendungsspezifische Protokollfragen und abhängig davon wie deine Netzwerkteilnehmer miteinander kommunizieren.

“Ene mene mu und raus bist Du!”