如何檢查Java中是否存在Internet連接?你如何檢查你是否可以通過java連接到互聯網?一種方法是:final URL url = new URL("http://www.google.com");final URLConnection conn = url.openConnection();... if we got here, we should have net ...但是,是否有更適合執行該任務的東西,特別是如果您需要經常進行連續檢查并且極有可能丟失互聯網連接?
3 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
您應該連接到實際應用程序所需的位置。否則,您正在測試您是否與某個無關的地方有聯系(在這種情況下為Google)。
特別是,如果您正在嘗試與Web服務進行通信,并且如果您可以控制Web服務,那么擁有某種廉價的“獲取狀態”Web方法將是一個好主意。通過這種方式,您可以更好地了解您的“真實”通話是否可行。
在其他情況下,只打開一個應該打開的端口的連接可能就足夠了 - 或者發送ping。InetAddress.isReachable
可能是適合您需求的API。

楊__羊羊
TA貢獻1943條經驗 獲得超7個贊
人們建議使用INetAddress.isReachable。問題是某些站點配置其防火墻以阻止ICMP Ping消息。因此,即使Web服務可訪問,“ping”也可能會失敗。
當然,反過來也是如此。即使Web服務器已關閉,主機也可能會響應ping。
當然,由于本地防火墻限制,計算機可能無法直接連接到某些(或所有)Web服務器。
根本問題是“可以連接到互聯網”是一個定義不明確的問題,如果沒有這樣的事情很難測試:
有關用戶機器和“本地”網絡環境的信息,以及
有關應用程序需要訪問的信息。
因此,一般來說,最簡單的解決方案是讓應用程序只是嘗試訪問它需要訪問的任何內容,并依靠人工智能來進行診斷。
添加回答
舉報
0/150
提交
取消