PingOptions Klasa

Definicja

Służy do kontrolowania sposobu Ping przesyłania pakietów danych.

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

Przykłady

Poniższy przykład kodu używa PingPingOptions klas i , PingReply aby wysłać żądanie echa ICMP do hosta określonego w wierszu polecenia.

#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 PingOptions udostępnia Ttl właściwości i DontFragment do kontrolowania sposobu przesyłania pakietów żądań echa protokołu ICMP (Internet Control Message Protocol).

Właściwość Ttl określa czas wygaśnięcia pakietów wysyłanych przez klasę Ping . Ta wartość wskazuje liczbę węzłów routingu, które mogą przekazywać pakiet przed odrzuceniem Ping . Ustawienie tej opcji jest przydatne, jeśli chcesz przetestować liczbę przeskoków, znanych również jako przeskoki, są wymagane do wysłania pakietu z komputera źródłowego na komputer docelowy.

Właściwość DontFragment określa, czy dane wysyłane do hosta zdalnego można podzielić na wiele pakietów. Ta opcja jest przydatna, jeśli chcesz przetestować maksymalną jednostkę transmisji (MTU) routerów i bram używanych do przesyłania pakietu.

PingOptions Wystąpienia klasy są przekazywane do Send metod iSendAsync, a PingReply klasa zwraca wystąpienia PingOptions za pośrednictwem Options właściwości .

Aby uzyskać listę początkowych wartości właściwości dla wystąpienia programu PingOptions, zobacz PingOptions konstruktor.

Konstruktory

PingOptions()

Inicjuje nowe wystąpienie klasy PingOptions.

PingOptions(Int32, Boolean)

Inicjuje PingOptions nowe wystąpienie klasy i ustawia wartość Czas wygaśnięcia i fragmentacji.

Właściwości

DontFragment

Pobiera lub ustawia Boolean wartość, która kontroluje fragmentację danych wysyłanych do hosta zdalnego.

Ttl

Pobiera lub ustawia liczbę węzłów routingu, które mogą przekazywać Ping dane przed odrzuceniem.

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 bieżące wystąpienie.

(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