我正在使用Renci.SshNet(RuntimeVersion:2.0.50727)来连接支持ssh的linux机器,它适用于网络中可用的主机,但每当我尝试连接到不在的任何主机时网络似乎停留在SshClient.Connect()
我正在考虑一种解决方法,例如在连接设备之前ping设备,但不确定设备的可靠性。
答案 0 :(得分:1)
ConnectionInfo
具有您可以设置的Timeout
属性。默认为30秒,因此我建议将其降低到适合您环境的范围,例如5秒钟。
如果使用主机名进行连接,您还可以选择使用Dns.GetHostEntry()
承担解析IP地址的任务。
var entries = Dns.GetHostEntry(host);
if( entries.AddressList.Length > 0 )
{
//Optionally do some checking with AddressFamily if you have v4/v6 issues
var ip = entries.AddressList[0];
}
如果你想制造一个“pinger”,你可以使用TcpClient
来尝试绑定到主机和端口但是因为那基本上就是SshClient
正在做的事情我觉得它会有点过头了