我有一個Java應用程序,每10分鐘運行一次。所以無論何時線程開始執行,我都必須檢查是否有互聯網連接。所以我爲此使用Socket類。但是這裏的問題是如果線路沒有連接到我的系統,套接字類就可以正常工作。對我來說,如果我插入電線,那麼我有局域網,但沒有互聯網。在這種情況下,套接字類無法引發錯誤。這裏是我的代碼 -在java中檢查互聯網連接
Socket socket = null;
try {
socket = new Socket("www.google.com", 80);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) try { socket.close();
}
catch(IOException e) {
e.printStackTrace();
}
System.exit(0);
}
我檢查了這裏的代碼 - Detect internet Connection using Java。但是使用getContent()並沒有幫助。
與你的問題沒有關係,但你應該知道如果catch會調用'System.exit(0)'(至少在Java7中)'finally'部分不會被執行。 – Pshemo