适用于 Java 的互联网控制消息协议



请帮帮我。我结束了一个简单的程序的工作。我需要检查服务器状态。我尝试使用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在此处输入链接说明请为我的愚蠢问题道歉

最新更新