2017-01-20 2 views
0

Ich mache eine Server-App, und ich muss wissen, von welcher Adresse Nachricht an den Server gekommen ist. Bei Socket Klasse hat eine RemoteEndPoint, um zu wissen, woher die Nachricht kommt. Ist es eine Lösung zu finden, wo Nachricht von UDPClient Klasse kommen? Ich habe im Internet gesucht, aber nichts gefunden.Wie kann ich einen Remote-Endpunkt bei UDPClient erhalten?

Antwort

2

Wie Sie keinen Code geschrieben haben, ist dies ein vereinfachtes Beispiel, das sollte den Job erledigen:

UdpClient udp = new UdpClient(5050); 
private void Listen() 
{ 
    while (true) 
    { 
     IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0); 
     byte[] recData = udp.Receive(ref anyIP); 
     string ip = anyIP.Address.ToString() //this is client IP address 
    } 
} 
+0

Thank you! Es funktioniert super! Ich habe bei der Frage nicht gesagt, aber ich wollte einen Port bekommen, woher er kommt, also wie du sagtest, aber nur "Address", sollte "Port" verwenden. Danke noch einmal! – Ramon

+0

Bearbeitet, um die Portnummer hinzuzufügen. Es ist Teil des IPEndpoint-Objekts – Peter4499

+0

Das hat in meinem Fall nicht funktioniert. Ich habe nur die IP-Adresse der empfangenden NIC erhalten. Was kann ich tun? (Code läuft in einem Backgroundworker und ist bereits auf dieses Beispiel reduziert; Setup: Senden eines Programms in einer VM (IP: * .3, Host-Netzwerkadapter, Senden an Broadcast (255.255.255.255)) Empfangen des Programms auf dem Host (IP: * .1). "AnyIP.Adresse" == * .1) –

Verwandte Themen