版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
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 教程 目录