Java 判断网络是否断开

在开发网络应用程序时,经常需要判断网络连接是否可用。本文将介绍如何使用Java编写代码来判断网络是否断开,并提供示例代码。

判断网络是否断开的方法

1. 使用InetAddress类

InetAddress类提供了一些方法来测试网络连接是否可用。其中,isReachable(int timeout)方法可以判断指定的主机是否可到达。

import java.net.InetAddress;
import java.io.IOException;

public class NetworkUtil {

    public static boolean isNetworkAvailable(String host) {
        try {
            InetAddress address = InetAddress.getByName(host);
            return address.isReachable(3000); // 3秒超时
        } catch (IOException e) {
            return false;
        }
    }
}

在上述代码中,我们通过InetAddress.getByName(host)获取指定主机的InetAddress实例,然后使用isReachable(int timeout)方法来判断主机是否可到达。超时时间设置为3秒。

2. 发送HTTP请求

另一种判断网络连接是否可用的方法是发送HTTP请求并检查响应状态码。我们可以使用Java的HttpURLConnection类来发送HTTP请求。

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class NetworkUtil {

    public static boolean isNetworkAvailable(String url) {
        try {
            HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
            connection.setRequestMethod("HEAD");
            int responseCode = connection.getResponseCode();
            return responseCode == HttpURLConnection.HTTP_OK;
        } catch (IOException e) {
            return false;
        }
    }
}

在上述代码中,我们使用URL类来创建指定URL的HttpURLConnection实例,然后设置请求方法为HEAD,即只获取响应头部,并调用getResponseCode()方法获取响应状态码。如果状态码为200,即HTTP_OK,则说明网络连接可用。

示例代码

下面是一个示例代码,演示如何使用上述方法判断网络连接是否可用:

public class Main {

    public static void main(String[] args) {
        String host = "www.baidu.com";
        String url = "

        boolean isHostAvailable = NetworkUtil.isNetworkAvailable(host);
        boolean isURLAvailable = NetworkUtil.isNetworkAvailable(url);

        if (isHostAvailable) {
            System.out.println("主机可到达");
        } else {
            System.out.println("主机不可到达");
        }

        if (isURLAvailable) {
            System.out.println("URL可到达");
        } else {
            System.out.println("URL不可到达");
        }
    }
}

在上述示例代码中,我们分别使用isNetworkAvailable()方法判断主机和URL是否可到达,并打印相应的结果。

总结

本文介绍了两种判断网络连接是否可用的方法:使用InetAddress类的isReachable(int timeout)方法和发送HTTP请求并检查响应状态码。根据具体的需求,选择合适的方法来判断网络是否断开。

通过本文的示例代码,我们可以学习如何使用Java判断网络是否断开,并在实际开发中应用这些方法。希望本文对您有所帮助。

参考文献:

  • [InetAddress JavaDoc](
  • [HttpURLConnection JavaDoc](

gantt
    dateFormat  YYYY-MM-DD
    title       Java 判断网络是否断开甘特图
    section     准备工作
    计划任务     :done,    des1, 2022-10-01, 2022-10-02
    下载依赖     :active,  des2, after des1, 2d
    编写代码     :         des3, after des2, 3d
    文章撰写     :         des4, after des3, 3d
    完成整理     :         des5, after des4, 2d
    section     发布与分享
    发布文章     :         des6, after des5, 1d
    分享到社交媒体 :         des7, after des6, 1d
    结束         :         des8, after des7, 1d

本文首先介绍了两种判断网络