vb.net 教程 7-1 本地网络信息的获取 8 异步Ping

版权声明:本文为博主原创文章,转载请显著位置标明出处,未经博主允许不得用于商业目的。 https://blog.csdn.net/UruseiBest/article/details/81811759

Ping类还提供了SendAsync()来异步检测到远程计算机的连接情况。

SendAsync方法完成后,无论成功还是失败,都会引发PingCompleted事件。因此需要先在代码中加入该事件的处理。

注意:以下代码中用的是pingEnd,它必须和PingCompleted事件使用相同的参数。PingCompletedEventArgs提供了Reply属性,即PingReply 类。

    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        Dim addr As String = "www.csdn.net"
        Dim p As New Ping()
        AddHandler p.PingCompleted, AddressOf pingEnd
        p.SendAsync(addr, 1000, "ok")
        TextBox1.Text = "异步 Ping地址 " & addr & "结果" & vbCrLf
    End Sub


    Private Sub pingEnd(sender As Object, e As PingCompletedEventArgs)
        If e.Error Is Nothing Then
            If CType(e.UserState, String) = "ok" Then
                If e.Reply.Status = IPStatus.Success Then
                    TextBox1.Text &= "地址:" & e.Reply.Address.ToString & vbCrLf
                    TextBox1.Text &= "TTL:" & e.Reply.Options.Ttl & vbCrLf
                    TextBox1.Text &= "答复消息所用的毫秒数:" & e.Reply.RoundtripTime & vbCrLf
                Else
                    TextBox1.Text = "错误信息:" & e.Reply.Status.ToString
                End If
            End If
        Else
            TextBox1.Text = "发生错误:" & e.Error.Message
        End If
    End Sub

运行如下:

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看vb.net 教程 目录

猜你喜欢

转载自blog.csdn.net/UruseiBest/article/details/81811759
今日推荐