PingReply::RoundtripTime Property

 

Gets the number of milliseconds taken to send an Internet Control Message Protocol (ICMP) echo request and receive the corresponding ICMP echo reply message.

Namespace:   System.Net.NetworkInformation
Assembly:  System (in System.dll)

public:
property long long RoundtripTime {
	long long get();
}

Property Value

Type: System::Int64

An Int64 that specifies the round trip time, in milliseconds.

If the Echo request fails, the RoundtripTime time is reported as 0, which is also a valid value when the request succeeds. You must check the Status to determine whether the value returned by this property should be ignored.

The following code example sends an ICMP echo request synchronously and displays the size of the buffer returned by this property.

void ComplexPing()
{
   Ping ^ pingSender = gcnew Ping;

   // Create a buffer of 32 bytes of data to be transmitted.
   String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   array<Byte>^buffer = Encoding::ASCII->GetBytes( data );

   // Wait 10 seconds for a reply.
   int timeout = 10000;

   // Set options for transmission:
   // The data can go through 64 gateways or routers
   // before it is destroyed, and the data packet
   // cannot be fragmented.
   PingOptions ^ options = gcnew PingOptions( 64,true );

   // Send the request.
   PingReply ^ reply = pingSender->Send( "www.contoso.com", timeout, buffer, options );
   if ( reply->Status == IPStatus::Success )
   {
      Console::WriteLine( "Address: {0}", reply->Address->ToString() );
      Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime );
      Console::WriteLine( "Time to live: {0}", reply->Options->Ttl );
      Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment );
      Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length );
   }
   else
   {
      Console::WriteLine( reply->Status );
   }
}


.NET Framework
Available since 2.0
Return to top
Show: