2017-05-20 156 views
0

请帮助我们。我结束了一项简单程序的工作。我需要检查服务器状态。我试图使用InetAdress.isReacheble和Socket。但有时如果服务器在Windows上,我的服务器状态为false。在阅读了大量信息后,我意识到这是java enter link description here的一个bug。但来源很古老。这个问题仍然相关吗? 我尝试使用这个代码注释enter link description here用于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 enter link description here。试图从应用程序库连接,但没有发生任何事情。 我将不胜感激!

回答