簡體   English   中英

檢查java中的互聯網連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM