Hallo Leute!
Ich habe mir eine kleine Udp-Klasse gebastelt. Diese joint einer Multicast-Gruppe.
Jetzt habe ich folgendes Problem:
Der Socket wird mit IPAdress.Any initialisiert, damit er auch wirklich auf jedem Netzwerkadapter horcht. Dadurch entsteht aber das Problem, dass wenn ich ein Packet erhalte, ich zwar den Remote IPEndPoint habe, aber nicht meinen lokalen. Gibt es eine Moeglichkeit an die IP heranzukommen, auf welcher das Paket empfangen wurde?
UdpClient uclient = new UdpClient();
// enable port sharing
uclient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
// listen on any network interface on port 1900
uclient.Client.Bind(new IPEndPoint(IPAddress.Any, 1900));
// join this multicast group
uclient.JoinMulticastGroup(IPAddress.Parse("239.255.255.250"));
// receive from ANY client!
IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 0);
// wait for next packet
byte[] packet = uclient.Receive(ref endpoint);
// hier wuerde ich nun gerne meine lokale IP auslesen auf welcher das Paket empfangen wurde
Vielleicht ist es ja auch moeglich, nur die MAC-Adresse zu bekommen. Dann kann ich wenigstens den Netzwerkadapter ausfindig machen und eine IP waehlen.
Vielen Dank
Mit freundlichen Grüßen
Felix