Foxtable(狐表)用户栏目专家坐堂 → [求助]网络连通测试不准确


  共有7655人关注过本帖树形打印复制链接

主题:[求助]网络连通测试不准确

帅哥哟,离线,有人找我吗?
洮沙
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:842 积分:7253 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]网络连通测试不准确  发帖心情 Post By:2022/9/27 18:05:00 [只看该作者]

老师,用以下代码测试网络连通情况,怎么不对?
方法一、
Dim FWdt As Date
If TryConnectHost("www.baidu.com") Then '判断网络是否正常
    If Network.Ping("www.baidu.com") Then '判断网络是否能ping
        Dim htc As New HttpClient("http://www.baidu.com")
        If htc.GetInformation() Then
            htc.Close() '必须执行Close方法关闭连接
            FWdt = CDate(htc.ResponseHeaders("date")) '取得网页头部日期
        End If
    Else
        Output.Show("1") '网络不通的话将今天赋值  
    End If 
Else
    Output.Show("2") '网络不通的话将今天赋值 
End If
执行后结果为1,应该是2啊?

方法二、
方法一ping不通时有时会弹出错误提示,很不友好,用Try捕捉还是不行,如下:
Dim FWdt As Date
If TryConnectHost("www.baidu.com") Then '判断网络是否正常
    Try  
        Network.Ping("www.baidu.com") 
        Dim htc As New HttpClient("http://www.baidu.com")
        If htc.GetInformation() Then
            htc.Close() '必须执行Close方法关闭连接
            FWdt = CDate(htc.ResponseHeaders("date")) '取得网页头部日期
        End If
        Output.Show("0") '网络不通的话将今天赋值 
    Catch ex As Exception 
        Output.Show("1") '网络不通的话将今天赋值 
    End Try 
Else
    Output.Show("2") '网络不通的话将今天赋值 
End If
FT运行错误假死大概2分钟左右,最后弹出以下错误:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220927180212.png
图片点击可在新窗口打开查看
代码最后运行结果为0,不是也应该是2吗?

麻烦老师,帮忙解决一下,反反复复测试,始终不理想,谢谢!

[此贴子已经被作者于2022/9/27 18:08:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112465 积分:572605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/27 20:10:00 [只看该作者]

执行后结果不为2,说明网络肯定是通的。

如果只是为了判断是否有连接外网,下面代码就够了

Dim htc As New HttpClient("http://www.baidu.com")
htc.SkipError = True
If htc.GetInformation() Then
    output.Show(CDate(htc.ResponseHeaders("date"))) '取得网页头部日期
Else
    Output.Show("无法连接")
End If
htc.Close()

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:842 积分:7253 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/9/27 20:41:00 [只看该作者]

老师,能够判断,但是出现FT假死现象,且执行时间比较长,能否有快速判断网络连接方法?

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220927202755.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220927202942.png
图片点击可在新窗口打开查看
再次测试:
这次干脆拔掉网线,发现秒执行,后到网络中心禁用本地连接网卡也是秒执行,
为什么只是断开宽度连接后代码会出现上面假死现象呢?TryConnectHost("www.baidu.com") 也能够执行呢?

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220927204708.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2022/9/27 20:52:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112465 积分:572605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/27 20:55:00 [只看该作者]


[此贴子已经被作者于2022/9/27 20:55:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112465 积分:572605 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/27 20:57:00 [只看该作者]

htc.TimeOut = 1

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:842 积分:7253 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/9/28 10:54:00 [只看该作者]

好了,谢谢蓝版。学识不够啊!

 回到顶部