T
tuxedo
Gast
Hallo,
hab mal eben mit Inetadress->isReachable experimentiert.
Wollte mir ne kleine Anwendung schreiben die meine Router, Server und ein paar andere Clients im Netz überwacht.
Doch dabei ist mir aufgefallen dass das anscheinend nicht zuverlässig funktioniert:
Das Programm soll mehrere Einträge gleichzeitig überwachen können. Also läuft der Programmcode pro IP-Adresse die ich überwachen will in nem eigenen Thread in einer Endlosschleife mit 3 Sekunden Wartezeit zwischen zwei Überprüfungen.
Wie man sieht hab ich das TimeOut schon auf 60sek erhöht. Stelle ich das auf 2000ms oder sogar auf 1000ms dann sind seeeeeehr häufig manche Hosts auf einmal "nicht erreichbar". Beim nächsten Check sind die es dann doch wieder. Ein Windows-Ping nebenher zeigt aber keine Auffälligkeiten.
Und eine IP in meinem Netz (die Basisstation meines Siemens Gigaset VoIP-Telefons) ist laut Java gar nie "erreichbar". Windows-Pings und Webinterface der Basis gehen jedoch 1a. Auch die Antwortzeit ist ausreichend klein.
Weiß jemand woran das liegt?
- Warum werden manche Adressen nie als "reachable" erkannt?
- Warum kommts immer wieder zu Fehlerwerten die "offline" zeigen obwohl das Gerät dauerhaft online ist und ein Windows-Ping auch keinen aussetzer erkennt?!
Gruß Alex
hab mal eben mit Inetadress->isReachable experimentiert.
Wollte mir ne kleine Anwendung schreiben die meine Router, Server und ein paar andere Clients im Netz überwacht.
Doch dabei ist mir aufgefallen dass das anscheinend nicht zuverlässig funktioniert:
Code:
InetAddress adr;
boolean hostAvailable = false;
try {
adr = InetAddress.getByName(host);
hostAvailable = adr.isReachable(60000);
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Das Programm soll mehrere Einträge gleichzeitig überwachen können. Also läuft der Programmcode pro IP-Adresse die ich überwachen will in nem eigenen Thread in einer Endlosschleife mit 3 Sekunden Wartezeit zwischen zwei Überprüfungen.
Wie man sieht hab ich das TimeOut schon auf 60sek erhöht. Stelle ich das auf 2000ms oder sogar auf 1000ms dann sind seeeeeehr häufig manche Hosts auf einmal "nicht erreichbar". Beim nächsten Check sind die es dann doch wieder. Ein Windows-Ping nebenher zeigt aber keine Auffälligkeiten.
Und eine IP in meinem Netz (die Basisstation meines Siemens Gigaset VoIP-Telefons) ist laut Java gar nie "erreichbar". Windows-Pings und Webinterface der Basis gehen jedoch 1a. Auch die Antwortzeit ist ausreichend klein.
Weiß jemand woran das liegt?
- Warum werden manche Adressen nie als "reachable" erkannt?
- Warum kommts immer wieder zu Fehlerwerten die "offline" zeigen obwohl das Gerät dauerhaft online ist und ein Windows-Ping auch keinen aussetzer erkennt?!
Gruß Alex