c#判断网络连接状态的示例分享


在C#中,判断网络连接状态通常可以通过检查网络接口(NetworkInterface)的状态或者使用`System.Net.NetworkInformation`命名空间下的`Ping`类来实现。以下是一个使用`Ping`类来判断网络连接状态的示例代码:


using System;
using System.Net.NetworkInformation;

class NetworkChecker
{
    public static bool IsInternetAvailable()
    {
        try
        {
            using (var ping = new Ping())
            {
                PingReply reply = ping.Send("www.google.com", 3000); // 尝试ping google.com,超时时间设置为3000毫秒

                if (reply.Status == IPStatus.Success)
                {
                    // 如果ping成功,则认为网络连接是活动的
                    return true;
                }
            }
        }
        catch (PingException)
        {
            // 捕获Ping异常,可能是因为网络不可用等原因
        }

        // 如果ping失败或发生异常,则认为网络连接不可用
        return false;
    }

    static void Main(string[] args)
    {
        bool isConnected = IsInternetAvailable();
        if (isConnected)
        {
            Console.WriteLine("网络连接是活动的。");
        }
        else
        {
            Console.WriteLine("网络连接不可用。");
        }
    }
}

这段代码首先尝试ping一个外部服务器(在这个例子中是`www.google.com`),并设置了一个超时时间(3000毫秒)。如果ping操作成功,那么认为网络连接是活动的;如果ping操作失败或抛出异常,则认为网络连接不可用。

请注意,使用这种方法来判断网络连接状态可能不是完全可靠的,因为即使能够ping通某个服务器,也不代表所有的网络连接都是可用的。然而,对于大多数情况来说,这种方法是足够的。此外,在实际应用中,你可能需要更复杂的逻辑来处理网络连接的稳定性问题。