C# 从可以连接到服务器的IP阵列返回第一个IP

C# 从可以连接到服务器的IP阵列返回第一个IP,c#,C#,有一个IParray ips[],如何从可以连接到服务器的IP阵列返回第一个IP 我尝试使用异常来检查IP是否可以连接,而不是通过返回值,所以我不知道如何返回 foreach (IPAddress x in ips) { try { var client = new TcpClient(x.ToString(), 2000); return x.ToString(); } catch(Exception e) { } } 事实上

有一个
IParray ips[]
,如何从可以连接到服务器的IP阵列返回第一个IP

我尝试使用异常来检查IP是否可以连接,而不是通过返回值,所以我不知道如何返回

foreach (IPAddress x in ips) {
    try {
        var client = new TcpClient(x.ToString(), 2000);
        return x.ToString();
    } 
    catch(Exception e) {
    }
}

事实上,你的想法没有错。为了让一切变得更漂亮、更简单,你可以这样做:

public void YourMethod
{
  foreach (IPAddress x in ips)
  {
    if(IsServerListening(x.ToString(), 2000))
    {
      //If you can connect, then exit the foreach loop (I assume you´ll do something else)
      break;
    }
  }
}

private bool IsServerListening(string server, int port)
{
    using(TcpClient client = new TcpClient())
    {
        try
        {
            client.Connect(server, port);
        }
        catch(SocketException)
        {
            return false;
        }
        client.Close();
        return true;
    }
}