Dart.PowerTCP.SslSockets Namespace > Trace Class : HopType Property (Trace) |
Enumerates the values which determine the behavior of the individual hops when performing a trace route operation.
[Visual Basic]
<CategoryAttribute("Behavior")>
<DescriptionAttribute("Gets or Sets the type of Hops and Echoes to use.")>
<DefaultValueAttribute()>
Public Property HopType As HopType
[C#]
[CategoryAttribute("Behavior")]
[DescriptionAttribute("Gets or Sets the type of Hops and Echoes to use.")]
[DefaultValueAttribute()]
public HopType HopType {get; set;}
[C++]
[CategoryAttribute("Behavior")]
[DescriptionAttribute("Gets or Sets the type of Hops and Echoes to use.")]
[DefaultValueAttribute()]
public: __property HopType get_HopType();
public: __property void set_HopType(
HopType value
);
[C++/CLI]
[CategoryAttribute("Behavior")]
[DescriptionAttribute("Gets or Sets the type of Hops and Echoes to use.")]
[DefaultValueAttribute()]
public:
property HopType HopType {
HopType get();
void set (HopType value);
}
A trace route operation is made up of a series of hops. Each hop is made up of 3 ICMP echoes. The HopType property determines the behavior of the hops.
HopType.SynchHops represents the traditional trace route approach. Change this to HopType.AsynchHops or HopType.AsynchEchoes for enhanced trace route speed.
The following example demonstrates a basic trace route operation.
[Visual Basic]
Private Sub TraceTest()
' Set all hops and echoes to be synchronous
Trace1.HopType = HopType.SynchHops
' Do not exceed 25 hops
Trace1.MaxHops = 25
' Trace the route. Trace.Hop event will be raised when new hop data is available
Dim tr As TraceResult = Trace1.Send("www.dart.com")
' Trace route complete. Display some data.
Debug.WriteLine("Average time for final hop: " & tr.AverageTime)
Debug.WriteLine("Number of hops: " & tr.Hops.Length)
Debug.WriteLine("Remote Address: " & tr.RemoteAddress)
End Sub
Private Sub Trace1_Hop(ByVal sender As Object, ByVal e As HopEventArgs) Handles Trace1.Hop
' Display information about the hop
Debug.WriteLine("Time-to-live for the hop: " & e.Result.TTL)
Debug.WriteLine("Remote address: " & e.Result.RemoteAddress)
' Now display info about each of the three echoes
Debug.WriteLine("Response times for this hop")
Dim er As EchoResult
For Each er In e.Result.Echoes
Debug.WriteLine(er.ResponseTime)
Next
Debug.WriteLine("Average time for this hop: " & e.Result.AverageTime)
End Sub
[C#]
private void TraceTest()
{
// Set all hops and echoes to be synchronous
trace1.HopType = HopType.SynchHops;
// Do not exceed 25 hops
trace1.MaxHops = 25;
// Trace the route. Trace.Hop event will be raised when new hop data is available
TraceResult tr = trace1.Send("www.dart.com");
// Trace route complete. Display some data.
Debug.WriteLine("Average time for final hop: " +
tr.AverageTime);
Debug.WriteLine("Number of hops: " + tr.Hops.Length);
Debug.WriteLine("Remote Address: " + tr.RemoteAddress);
}
private void trace1_Hop(object sender, HopEventArgs e)
{
// Display information about the hop
Debug.WriteLine("Time-to-live for the hop: " +
e.Result.TTL);
Debug.WriteLine("Remote address: " + e.Result.RemoteAddress);
// Now display info about each of the three echoes
Debug.WriteLine("Response times for this hop");
foreach(EchoResult er in e.Result.Echoes)
Debug.WriteLine(er.ResponseTime);
Debug.WriteLine("Average time for this hop: " + e.Result.AverageTime);
}
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
Send comments on this topic.
Documentation version 1.1.2.0.
© 2008 Dart Communications. All rights reserved.