Hallo alle zusammen,
ich beschäftige mich zur zeit etwas mit C# und bin gerade dabei mir ein kleines Programmiertool für meine "Selfmade-Schaltboxen" zu basteln.
Und zwar möchte ich folgendes realisieren:
Ich habe mehrere Geräte im Netzwerk verteilt (nehmen wir mal an 3 mit den IP´s 192.168.15.10, 192.168.15.15 und 192.168.15.55).
Ich mache nun in meinem Programm einen "Broadcast-Socket" auf und sende ein Datenpaket das die Geräte als "Befehl" zum senden der eigenen Daten (ebenfalls über Broadcasts) verstehen.
Funktioniert auch alles so wie es soll nur habe ich auf manchen anderen Computern mit mehreren aktiven Netzwerkverbindungen (Lokales Netz mit den Geräten und z.B. eine openVPN-Verbindung) das problem dass der Broadcast nicht an alle Netze geht.
Soll heißen der Befehl wird zwar gesendet, aber dummerweise nicht an mein lokales Netzwerk sondern zufälligerweise an meine openVPN-Verbindung...
Gibt es irgendwie eine möglichkeit festzulegen an welches Netzwerkinterface der socket gebunden wird oder kann ich irgendwie an alle Netzwerke gleichzeitig etwas senden?
Hört sich zwar etwas komisch an, aber ich hoff jetzt einfach mal dass mich jemand versteht
Hier noch meine Sendefunktion:
ich beschäftige mich zur zeit etwas mit C# und bin gerade dabei mir ein kleines Programmiertool für meine "Selfmade-Schaltboxen" zu basteln.
Und zwar möchte ich folgendes realisieren:
Ich habe mehrere Geräte im Netzwerk verteilt (nehmen wir mal an 3 mit den IP´s 192.168.15.10, 192.168.15.15 und 192.168.15.55).
Ich mache nun in meinem Programm einen "Broadcast-Socket" auf und sende ein Datenpaket das die Geräte als "Befehl" zum senden der eigenen Daten (ebenfalls über Broadcasts) verstehen.
Funktioniert auch alles so wie es soll nur habe ich auf manchen anderen Computern mit mehreren aktiven Netzwerkverbindungen (Lokales Netz mit den Geräten und z.B. eine openVPN-Verbindung) das problem dass der Broadcast nicht an alle Netze geht.
Soll heißen der Befehl wird zwar gesendet, aber dummerweise nicht an mein lokales Netzwerk sondern zufälligerweise an meine openVPN-Verbindung...
Gibt es irgendwie eine möglichkeit festzulegen an welches Netzwerkinterface der socket gebunden wird oder kann ich irgendwie an alle Netzwerke gleichzeitig etwas senden?
Hört sich zwar etwas komisch an, aber ich hoff jetzt einfach mal dass mich jemand versteht
Hier noch meine Sendefunktion:
Code:
private void SendRequest(byte identifier)
{
byte[] data = new byte[3];
Socket bcSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep1 = new IPEndPoint(IPAddress.Broadcast, 2847);
bcSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
data[0] = (byte)'R';
data[1] = (byte)'C';
data[2] = identifier;
bcSocket.SendTo(data, iep1);
bcSocket.Close();
DatenTabelle.Rows.Clear();
}