有IParray ips[]
,如何从可以连接服务器的IP阵列返回第一个IP?
我尝试使用例外来检查IP是否可以连接,而不是返回值,所以我不知道如何返回。
foreach (IPAddress x in ips) {
try {
var client = new TcpClient(x.ToString(), 2000);
return x.ToString();
}
catch(Exception e) {
}
}
答案 0 :(得分:1)
实际上,你的想法并没有错。为了使所有更好,更简单,你可以做这样的事情:
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;
}
}