2017-05-20 5 views
0

Bitte helfen Sie mir Jungs. Ich beende meine Arbeit für ein einfaches Programm. Ich muss den Status eines Servers überprüfen. Ich habe versucht, InetAdress.isReacheble und Socket zu verwenden. Aber manchmal, wenn Server unter Windows bekomme ich einen Server-Status falsch. Nachdem ich eine Menge Informationen gelesen hatte, erkannte ich, dass dies einer der Fehler von Java ist. Aber die Quellen sind alt. Ist dieses Problem noch relevant? Ich habe versucht, Code mit diesen Kommentar enter link description hereInternet Control Message Protocol für 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; 
} 

Wenn der Server unter Windows verwenden I-Anschluss RDP (3389). Aber der Kunde mag nicht. Er möchte, dass ich den Status über ICMP überprüfe. Ist das möglich? Ich habe die App ICMP enter link description here gefunden. Versucht, aus der Anwendungsbibliothek eine Verbindung herzustellen, aber es ist nichts passiert. Ich werde für jede Information dankbar sein!

Antwort