检查java中的互联网连接

时间:2013-08-17 18:19:41

标签: java sockets urlconnection

我有一个每10分钟运行一次的java应用程序。因此,每当线程开始执行时,我必须检查是否存在互联网连接。所以我正在使用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);
     }

我在这里检查了代码 - Detect internet Connection using Java。但是使用getContent()没有帮助。

3 个答案:

答案 0 :(得分:1)

你试过吗?

boolean hasInternetAccess  = InetAddress.getByName("www.google.com").isReachable();

答案 1 :(得分:1)

您应该尝试连接到您需要连接的任何内容,并在发生故障时处理它。没有成功的神奇预测。

答案 2 :(得分:0)

两个答案。 这个链接背后的代码很好。您基本上需要从URL接收数据以确保它真的可以访问。我还要配置与setUseCaches(false)的连接 你的前期检查对你没有帮助。您仍然可以在程序中途松开连接。所以,让你的代码运行。当它检测到连接问题时,优先打印出错误给用户。