下午所有,我可以按特定順序查看網站列表嗎?
我在編寫我的第一個控制檯應用程序在VB中的過程。我正在開發的應用程序基本上是一個網站列表,然後寫出狀態。
我的問題是下面...
有我命令,我希望在我的VB來ping網站的方式。目前,我只是列出了這一點,並不重要的是,我在ping命令中寫入這些網站的順序似乎拉回了寫出最快repsonce的狀態。麻煩的是,我有幾個站點位於同一個Web框中,狀態消息在寫出狀態時似乎很糟糕。我認爲這是因爲他們有相同的響應時間。
請找我一直在使用的代碼...
'Imports ping class
Imports System.Net.NetworkInformation
Module Module1
Sub Main()
Console.Title = ("Daily Checks PING to Check Current Status")
Dim myPingList As New List(Of String) 'A LIST TO HOLD SOME STRINGS
Dim myPing As Ping = Nothing 'PING CLASS
Dim timeout As Integer = 100000 'TIMEOUT FOR PING REQUESTS
'ADD A BUNCH OF THINGS TO PING
myPingList.Add("website1")
myPingList.Add("website3")
myPingList.Add("website2")
'LOOP THE STRING LIST OF PLACES WE WANT TO PING
For Each ItemToPing As String In myPingList
'CREATE A NEW PING OBJECT
myPing = New Ping
'ADD EVENT HANDLER FOR THE PING COMPLETED EVENT
'PingResult IS THE SUB ROUTINE BELOW
AddHandler myPing.PingCompleted, _
AddressOf PingResult
'TELL USER WHAT IS BEING PINGED
'Console.WriteLine("Sending PING Request To: " & ItemToPing)
'SEND ASYNC PING REQUEST
'myPing.SendAsync(ItemToPing, timeout, Buffer, ItemToPing)
myPing.SendAsync(ItemToPing, timeout, ItemToPing)
Next
'WAIT FOR A KEYPRESS TO CLOSE CONSOLE WINDOW
Console.WriteLine("")
Console.WriteLine("Critical Systems Ping Results:")
Console.ReadKey(True)
End Sub
'THE PING RESULT THAT WILL FIRE WHEN A PING COMPLETES
Private Sub PingResult(ByVal sender As Object, ByVal e As System.Net.NetworkInformation.PingCompletedEventArgs)
'OUTPUT TO USER, e.UserState IS WHAT WE PASSED IN AS THE UserToken (ItemToPing) IN THE ABOVE CODE
Console.WriteLine("")
Console.WriteLine("***********************************")
Console.WriteLine("Application: " & e.UserState.ToString)
''IF THERE WAS AN ERROR THEN OUTPUT INFORMATION ABOUT THE ERROR
''OTHERWISE OUTPUT INFORMATION ABOUT THE RESULT OF THE PING REQUEST
''THE EVENTARGS e HAVE A LOT OF INFORMATION IN THE e.Reply VARIABLE
If e.Error IsNot Nothing Then
Console.WriteLine("Error: " & e.Error.Message)
If e.Error.InnerException IsNot Nothing Then
Console.WriteLine("More Info: " & e.Error.InnerException.Message)
End If
Else
Console.WriteLine("Status: " & e.Reply.Status.ToString)
Console.WriteLine("Round Trip Time: " & e.Reply.RoundtripTime.ToString)
Console.WriteLine("Response Buffer Length:" & e.Reply.Buffer.Length.ToString)
End If
Console.WriteLine("***********************************")
'THE SENDER IN THE ARGUMENTS IS THE PING OBJECT THAT WE CREATED
'SO NOW REMOVE THE EVENT HANDLER LISTENER AS IT IS NO LONGER NEEDED
'AND CALL Dispose() ON THE PING CLASS TO CLEAN UP UNMANAGED RESOURCES
With DirectCast(sender, Ping)
RemoveHandler .PingCompleted, AddressOf PingResult
.Dispose()
End With
End Sub
End Module
有probaby一種更好的方式來完成/寫這個任務,但上面是一個開始。 任何幫助,非常感謝。
Registers Betty。
非常感謝,這是很大的幫助 –