[英]check internet connectivity in java
我有一個java應用程序,每10分鍾運行一次。 因此,每當線程開始執行時,我必須檢查是否存在互聯網連接。 所以我正在使用Socket類。 但問題是如果線路沒有連接到我的系統,套接字類工作正常。 對我來說,如果我插上電線,那么我有局域網,但沒有互聯網。 在這種情況下,套接字類無法拋出錯誤。 這是我的代碼 -
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);
}
我在這里檢查了代碼 - 使用Java檢測Internet連接 。 但是使用getContent()並沒有幫助。
你有沒有嘗試過?
boolean hasInternetAccess = InetAddress.getByName("www.google.com").isReachable();
您應該嘗試連接到您需要連接的任何內容,並在發生故障時處理它。 沒有成功的神奇預測。
兩個答案。 這個鏈接背后的代碼很好。 您基本上需要從URL接收數據以確保它真的可以訪問。 我還要使用setUseCaches(false)
配置連接setUseCaches(false)
2。您的setUseCaches(false)
檢查對您沒有幫助。 您仍然可以在程序中途松開連接。 所以,讓你的代碼運行。 當它檢測到連接問題時,優雅地向用戶打印錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.