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