请帮帮我。我结束了一个简单的程序的工作。我需要检查服务器状态。我尝试使用InetAdress.isReacheble和Socket。但有时如果 Windows 上的服务器,我得到的服务器状态为 false。在阅读了大量信息后,我意识到这是java在此处输入链接描述的错误之一。但来源很旧。这个问题仍然相关吗?我尝试使用代码此注释在此处输入链接描述
private static boolean isReachable(String addr, int openPort, int timeOutMillis) {
try {
// Any Open port on other machine
// openPort = 22 - ssh, 80 or 443 - webserver, 25 - mailserver etc.
try (Socket soc = new Socket()) {
soc.connect(new InetSocketAddress(addr, openPort), timeOutMillis);
}
return true;
} catch (IOException ex) {
return false;
}
如果服务器在Windows上使用端口RDP(3389(。但是客户不喜欢。他希望我通过ICMP检查状态。这可能吗?我发现应用程序ICMP在此处输入链接描述。已尝试从应用程序库进行连接,但没有任何反应。我将不胜感激任何信息!
InetAddress.isReacheble默认使用icmp在此处输入链接说明请为我的愚蠢问题道歉