Sdílet prostřednictvím


PingOptions Třída

Definice

Používá se k řízení způsobu Ping přenosu datových paketů.

public ref class PingOptions
public class PingOptions
type PingOptions = class
Public Class PingOptions
Dědičnost
PingOptions

Příklady

Následující příklad kódu používá Pingtřídy , PingOptions a PingReply k odeslání požadavku na odezvu ICMP na hostitele zadaného na příkazovém řádku.

#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

Poznámky

Třída PingOptions poskytuje Ttl vlastnosti a DontFragment pro řízení způsobu přenosu paketů požadavků na odezvu protokolu ICMP (Internet Control Message Protocol).

Vlastnost Ttl určuje hodnotu TTL (Time to Live) pro pakety odeslané Ping třídou . Tato hodnota určuje počet uzlů směrování, které můžou paket předat dál Ping , než se zahodí. Nastavení této možnosti je užitečné, pokud chcete otestovat počet přesměrování, označovaných také jako segmenty směrování, které se vyžadují k odeslání paketu ze zdrojového počítače do cílového počítače.

Vlastnost DontFragment určuje, zda lze data odesílaná vzdálenému hostiteli rozdělit na více paketů. Tato možnost je užitečná, pokud chcete otestovat maximální jednotku přenosu (MTU) směrovačů a bran používaných k přenosu paketu.

Instance třídy jsou předány PingOptionsSend metodám a SendAsync a PingReply třída vrací instance PingOptions třídy prostřednictvím Options vlastnosti .

Seznam počátečních hodnot vlastností pro instanci PingOptionsnaleznete v konstruktoru PingOptions .

Konstruktory

PingOptions()

Inicializuje novou instanci PingOptions třídy .

PingOptions(Int32, Boolean)

Inicializuje novou instanci PingOptions třídy a nastaví hodnoty Time to Live a fragmentace.

Vlastnosti

DontFragment

Získá nebo nastaví Boolean hodnotu, která řídí fragmentaci dat odesílaných na vzdáleného hostitele.

Ttl

Získá nebo nastaví počet uzlů směrování, které mohou předávat Ping data před jejich zahození.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro