2017-01-23 2 views
2

Ich war der Erwartung, dass die UdpClient.Connect()-Methode, wenn der Endpunkt nicht verfügbar ist, eine Ausnahme auslösen würde, die ich erfassen und sagen könnte, einen Beschriftungstext zu sagen, wenn das Programm verbunden war der Server oder nicht. Obwohl ich den Server ausgeschaltet habe, mit dem ich mich verbinden möchte, ist die Methode jedoch ohne Probleme beendet. Gibt es eine Möglichkeit, dieses Problem zu lösen, oder eine andere Methode, die ich versuchen sollte?UdpClient nicht fehlgeschlagen, wenn der Endpunkt nicht verfügbar ist

Meine aktuellen Code (IP-Adresse ausgeblendet, aber gültig ist):

UdpClient chatConnection = new UdpClient(); 
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("xxx.xx.xxx.xxx"), 1000); 

// Initialize client/server connection and set status text 
try 
{ 
    chatConnection.Connect(serverEndPoint); 
    SL_Status.Text = "Connected"; 
} 
catch (Exception ex) 
{ 
    SL_Status.Text = "Not Connected"; 
    MessageBox.Show("Unable to connect to server. See console for logs."); 
    Console.WriteLine(ex); 
} 

Antwort

1

Da UDP verbindungslos Prüfung ist, wenn der Client verbunden ist, ist es nicht anwendbar. Es gibt jedoch eine Problemumgehung, die in einigen Fällen funktionieren kann: answer by Yahia

+0

Ahh, perfekt, danke! Ich wusste, dass UDP mit seinen Verbindungsregeln laxer war, wusste nicht, dass es fast sinnlos war, die 'Connect()' Methode dafür zu benutzen, haha – dantdj

Verwandte Themen