Laden...

UdpClient - Multicast - Localen IPEndPoint herausfinden?

Erstellt von EgoFelix vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.726 Views
E
EgoFelix Themenstarter:in
38 Beiträge seit 2009
vor 14 Jahren
UdpClient - Multicast - Localen IPEndPoint herausfinden?

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