当端点不可用时,UdpClient不会失败

时间:2017-01-23 00:07:58

标签: c# udpclient

我的期望是,如果端点不可用,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);
}

1 个答案:

答案 0 :(得分:1)

由于UDP是无连接检查,如果客户端已连接,则不会应用它。 但是有一种解决方法在某些情况下可能有效: answer by Yahia