Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查java中的internet连接_Java_Sockets_Urlconnection - Fatal编程技术网

检查java中的internet连接

检查java中的internet连接,java,sockets,urlconnection,Java,Sockets,Urlconnection,我有一个java应用程序,每10分钟运行一次。因此,每当线程开始执行时,我必须检查是否存在internet连接。所以我使用了Socket类。但是这里的问题是,如果电线没有连接到我的系统,socket类可以正常工作。对我来说,如果我插上电线,那么我有局域网,但没有互联网。在这种情况下,套接字类无法抛出错误。这是我的密码- Socket socket = null; try { socket = new Socket("www.google.com", 80);

我有一个java应用程序,每10分钟运行一次。因此,每当线程开始执行时,我必须检查是否存在internet连接。所以我使用了Socket类。但是这里的问题是,如果电线没有连接到我的系统,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);
     }
我在这里签出了代码-。但是使用getContent()没有帮助。

您尝试过吗

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

您应该尝试连接到您需要连接的任何设备,并在故障发生时进行处理。成功没有神奇的预兆。

两个答案。 1.链接背后的代码是好的。您基本上需要从URL接收数据,以确保它确实是可访问的。我还将使用
setUseCaches(false)

2.你的预先检查对你没有帮助。您仍然可以在程序运行到一半时断开连接。所以,让你的代码运行吧。当它检测到连接问题时,将错误优雅地打印出来给用户作为结束。

与您的问题无关,但您应该知道,如果catch调用
System.exit(0)
(至少在Java7中),则不会执行
finally
部分。这总是返回false