如何在C#中检查我的互联网是不是超时[重复]

Posted

技术标签:

【中文标题】如何在C#中检查我的互联网是不是超时[重复]【英文标题】:How to check if my internet has timed out or not in C# [duplicate]如何在C#中检查我的互联网是否超时[重复] 【发布时间】:2019-12-23 01:28:16 【问题描述】:

我已经在 Visual Studio 的 Windows 窗体应用程序中编写了一个应用程序,并且我已经在我的窗体中设置了一个计时器,它将每隔 1 秒(1000 毫秒)检查用户是否可以访问互联网,如果他/她没有访问权限,会弹出一个表单并显示用户无权访问互联网。这曾经工作得很好,直到我发现即使互联网显示超时也会弹出表单,尽管我想检查用户是否完全失去了对互联网的访问权限。我决定研究另一种算法,我希望计时器检查互联网是否连续出现 5 次超时,如果是,则会弹出一个向用户显示他们无权访问互联网的表单。关于上述计划的任何具体想法? 这是我的代码,它显示用户是否可以访问互联网。 * LIC 是显示用户无权访问互联网的表格* 类中的方法

public static bool Check_Internet_For_Acceptation()
    
        if (Connections.InternetConnection("google.com") == false)
        
            return false;
        
        else
            return true;
    

你可以看到我在 timer_Tick 中输入的代码

private void TimerCheckInternetConnection_Tick(object sender, EventArgs e)
    
        #region Check whether the users have internet connection or not
        if (Components.Check_Internet_For_Acceptation() == false)
        

            if (LIC.Visible)
            
                LIC.Show();
                return;
            
            else
                LIC.ShowDialog();
            TimerCheckInternetConnection.Enabled = false;
        
        #endregion
    

【问题讨论】:

这能回答你的问题吗? What is the best way to check for Internet connectivity using .NET? @Mikael 我相信它最终比我的要好。感谢您的宝贵帮助 @AliShahbazi 检查的逻辑更好,我实际上使用相同的逻辑但它不会解决检查5次。您可以在我提供的代码中使用此逻辑。重试 5 次。 @AshkanMobayenKhiabani 谢谢一百万。我可能会使用您建议的代码。 @AliShahbazi 不客气。 【参考方案1】:

可以返回更多状态,而不是返回真假:

public enum Status

     Unknown,
     Connected,
     NoConnection


public static int retries = 0;

public static Status Check_Internet_For_Acceptation()
    
        if (Connections.InternetConnection("google.com") == false)
        
            if(retries >=5)
               return Status.NoConnection;
            else
               retries++; return Status.Unknown;
        
        else
            return status.Connected;
    

在你的计时器中:

private void TimerCheckInternetConnection_Tick(object sender, EventArgs e)
    
        #region Check whether the users have internet connection or not
        if (Components.Check_Internet_For_Acceptation() == Status.NoConnection)
        
            // your logic for no connection
         else if(Components.Check_Internet_For_Acceptation() == Status.Connected)
        
            //your logic for connected
        
        //else status is unknown and nothing will happen till it is connected or no connection
            TimerCheckInternetConnection.Enabled = false;
        
        #endregion
    

【讨论】:

以上是关于如何在C#中检查我的互联网是不是超时[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中检查我的任何文本框是不是为空[重复]

如何在 android 中检查我的 android 设备是不是有互联网连接? [复制]

如何从文本框(windows窗体)检查主键是不是存在于我的数据库中,c#

检查 swift 中是不是有可用的互联网连接 [重复]

如何检查系统上是不是存在电池,然后在 C# 中为我的 WPF 应用程序获取电池百分比

在执行 HTTPClient 之前如何检查互联网连接 [重复]