Compartir vía


PingReply Clase

Definición

Proporciona información sobre el estado y los datos resultantes de una operación Send o SendAsync.

public ref class PingReply
public class PingReply
type PingReply = class
Public Class PingReply
Herencia
PingReply

Ejemplos

En el ejemplo de código siguiente se muestra el uso Ping de la clase para enviar una solicitud de eco ICMP de forma sincrónica y mostrar la respuesta.

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::Text;

// args[1] can be an IPaddress or host name.
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   
   Ping ^ pingSender = gcnew Ping;
   PingOptions ^ options = gcnew PingOptions;
   
   // Use the default Ttl value which is 128,
   // but change the fragmentation behavior.
   options->DontFragment = true;
   
   // Create a buffer of 32 bytes of data to be transmitted.
   String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   array<Byte>^buffer = Encoding::ASCII->GetBytes( data );
   int timeout = 120;
   PingReply ^ reply = pingSender->Send( args[ 1 ], 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 );
   }

   
}
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;

namespace Examples.System.Net.NetworkInformation.PingTest
{
    public class PingExample
    {
        // args[0] can be an IPaddress or host name.
        public static void Main (string[] args)
        {
            Ping pingSender = new Ping ();
            PingOptions options = new PingOptions ();

            // Use the default Ttl value which is 128,
            // but change the fragmentation behavior.
            options.DontFragment = true;

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);
            int timeout = 120;
            PingReply reply = pingSender.Send (args[0], 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);
            }
        }
    }
}
open System.Net.NetworkInformation
open System.Text

// args[0] can be an IPaddress or host name.
[<EntryPoint>]
let main args =
    let pingSender = new Ping()

    // Use the default Ttl value which is 128,
    // but change the fragmentation behavior.
    let options = PingOptions()
    options.DontFragment <- true

    // Create a buffer of 32 bytes of data to be transmitted.
    let data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    let buffer = Encoding.ASCII.GetBytes data
    let timeout = 120
    let reply: PingReply = pingSender.Send(args.[0], timeout, buffer, options)

    match reply.Status with
    | IPStatus.Success ->
        printfn "Address: %O" reply.Address
        printfn "RoundTrip time: %d" reply.RoundtripTime
        printfn "Time to live: %d" reply.Options.Ttl
        printfn "Don't fragment: %b" reply.Options.DontFragment
        printfn "Buffer size: %d" reply.Buffer.Length
        0
    | _ ->
        eprintfn "Error sending ping: %O" reply
        eprintfn "Error was: %O" reply.Status
        1

Comentarios

La Ping clase intenta enviar una solicitud de eco del Protocolo de mensajes de control de Internet (ICMP) a un equipo remoto y recibir información del equipo a través de un mensaje de respuesta de eco ICMP. La Ping clase usa instancias de la PingReply clase para devolver información sobre la operación, como su estado y el tiempo necesario para enviar la solicitud y recibir la respuesta.

Los Send métodos devuelven instancias de la PingReply clase directamente. Los SendAsync métodos devuelven un PingReply objeto en el PingCompletedEventHandler parámetro del PingCompletedEventArgs método. PingReply Se accede a a través de la Reply propiedad .

Si el valor de Status no Successes , no debe usar los valores devueltos por las RoundtripTimepropiedades , Options o Buffer . La RoundtripTime propiedad devolverá cero, la Buffer propiedad devolverá una matriz vacía y la Options propiedad devolverá null.

Propiedades

Address

Obtiene la dirección del host que envía el mensaje de respuesta de eco ICPM (Protocolo de mensajes de control de Internet).

Buffer

Obtiene el búfer de datos recibidos en un mensaje de respuesta de eco ICMP (Protocolo de mensajes de control de Internet).

Options

Obtiene las opciones utilizadas para transmitir la respuesta a un mensaje de solicitud de eco ICPM (Protocolo de mensajes de control de Internet).

RoundtripTime

Obtiene el número de milisegundos empleados en enviar una solicitud de eco del Protocolo de mensajes de control de Internet (ICMP) y recibir el mensaje de respuesta de eco ICMP correspondiente.

Status

Obtiene el estado de un intento de envío de un mensaje de solicitud de eco ICMP (Protocolo de mensajes de control de Internet) y la recepción del mensaje de respuesta de eco ICMP correspondiente.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a