Udostępnij za pośrednictwem


PingReply Klasa

Definicja

Zawiera informacje o stanie i danych wynikających z operacji Send lub SendAsync .

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

Przykłady

W poniższym przykładzie kodu pokazano, jak używać Ping klasy do synchronicznego wysyłania żądania echa ICMP i wyświetlania odpowiedzi.

#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

Uwagi

Klasa Ping próbuje wysłać żądanie echa protokołu ICMP (Internet Control Message Protocol) do komputera zdalnego i odebrać informacje z komputera za pośrednictwem komunikatu odpowiedzi echa ICMP. Klasa Ping używa wystąpień PingReply klasy do zwracania informacji o operacji, takich jak jej stan i czas potrzebny na wysłanie żądania i odebranie odpowiedzi.

Metody Send zwracają bezpośrednio wystąpienia PingReply klasy. Metody SendAsync zwracają PingReply wartość w parametrze PingCompletedEventHandler metody PingCompletedEventArgs . Dostęp PingReply do obiektu Reply jest uzyskiwany za pośrednictwem właściwości .

Jeśli wartość Status nie ma wartości , nie należy używać wartości zwracanych przez RoundtripTimewłaściwości lub OptionsBuffer .Success Właściwość RoundtripTime zwróci zero, Buffer właściwość zwróci pustą tablicę, a Options właściwość zwróci wartość null.

Właściwości

Address

Pobiera adres hosta, który wysyła odpowiedź echa protokołu ICMP (Internet Control Message Protocol).

Buffer

Pobiera bufor danych odebranych w komunikacie odpowiedzi echa protokołu ICMP (Internet Control Message Protocol).

Options

Pobiera opcje używane do przesyłania odpowiedzi do żądania echa protokołu ICMP (Internet Control Message Protocol).

RoundtripTime

Pobiera liczbę milisekund potrzebnych do wysłania żądania echa protokołu ICMP (Internet Control Message Protocol) i odbierania odpowiedniego komunikatu odpowiedzi echa ICMP.

Status

Pobiera stan próby wysłania żądania echa protokołu ICMP (Internet Control Message Protocol) i odbiera odpowiedni komunikat odpowiedzi echa ICMP.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy