Поделиться через


PingOptions Класс

Определение

Используется для управления передачей пакетов данных Ping.

public ref class PingOptions
public class PingOptions
type PingOptions = class
Public Class PingOptions
Наследование
PingOptions

Примеры

В следующем примере кода используются Pingклассы , PingOptions и PingReply для отправки эхо-запроса ICMP на узел, указанный в командной строке.

#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

Комментарии

Класс PingOptions предоставляет Ttl свойства и DontFragment для управления передачей пакетов эхо-запросов протокола ICMP.

Свойство Ttl задает срок жизни для пакетов, отправляемых классом Ping . Это значение указывает количество узлов маршрутизации, которые могут пересылать Ping пакет до его отмены. Этот параметр удобен, если вы хотите проверить количество перенаправлений, также называемых прыжками, которые требуются для отправки пакета с исходного компьютера на конечный компьютер.

Свойство DontFragment определяет, можно ли разделить данные, отправленные на удаленный узел, на несколько пакетов. Этот параметр полезен, если вы хотите протестировать максимальную единицу передачи (MTU) маршрутизаторов и шлюзов, используемых для передачи пакета.

Экземпляры PingOptions класса передаются Send в методы и SendAsync , а PingReply класс возвращает экземпляры PingOptions через Options свойство .

Список начальных значений свойств для экземпляра PingOptionsсм. в конструкторе PingOptions .

Конструкторы

PingOptions()

Инициализирует новый экземпляр класса PingOptions.

PingOptions(Int32, Boolean)

Инициализирует новый экземпляр класса PingOptions и задает значения срока жизни и фрагментации.

Свойства

DontFragment

Получает или задает значение типа Boolean, которое управляет фрагментацией данных, отправляемых на удаленный узел.

Ttl

Получает или задает число узелов маршрутизации, которые могут переадресовывать пакет Ping, прежде чем он будет удален.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к