我期望,如果端点不可用,UdpClient.Connect()方法将引发一个异常,我可以捕获该异常,例如,更改标签的文本以表明程序是否已连接到服务器。但是,尽管我已经关闭了要连接的服务器,该方法也没有问题。有什么方法可以解决此问题,还是我应该尝试其他方法?

我当前的代码(IP地址为空白,但有效):

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);
}

最佳答案

由于UDP是无连接的,因此检查客户端是否已连接不适用于它。
但是,有一种解决方法在某些情况下可能会起作用:
answer by Yahia

关于c# - 当端点不可用时,UdpClient不会失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41797561/

10-12 12:43