Ping Класс

Определение

Позволяет приложению определить, доступен ли удаленный компьютер по сети.

public ref class Ping : System::ComponentModel::Component
public ref class Ping : IDisposable
public ref class Ping : System::ComponentModel::Component, IDisposable
public class Ping : System.ComponentModel.Component
public class Ping : IDisposable
public class Ping : System.ComponentModel.Component, IDisposable
type Ping = class
    inherit Component
type Ping = class
    interface IDisposable
type Ping = class
    inherit Component
    interface IDisposable
Public Class Ping
Inherits Component
Public Class Ping
Implements IDisposable
Public Class Ping
Inherits Component
Implements IDisposable
Наследование
Наследование
Ping
Реализации

Примеры

В следующем примере кода показано синхронное использование Ping класса .

#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

В следующем примере кода показано асинхронное использование Ping класса .

#using <System.dll>

using namespace System;
using namespace System::Text;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::ComponentModel;
using namespace System::Threading;
void PingCompletedCallback( Object^ sender, PingCompletedEventArgs^ e );
void DisplayReply( PingReply^ reply );
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args->Length == 1 )
      throw gcnew ArgumentException( "Ping needs a host or IP Address." );

   String^ who = args[ 1 ];
   AutoResetEvent^ waiter = gcnew AutoResetEvent( false );
   
   Ping ^ pingSender = gcnew Ping;
   
   // When the PingCompleted event is raised,
   // the PingCompletedCallback method is called.
   pingSender->PingCompleted += gcnew PingCompletedEventHandler( PingCompletedCallback );
   
   // Create a buffer of 32 bytes of data to be transmitted.
   String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   array<Byte>^buffer = Encoding::ASCII->GetBytes( data );
   
   // Wait 12 seconds for a reply.
   int timeout = 12000;
   
   // Set options for transmission:
   // The data can go through 64 gateways or routers
   // before it is destroyed, and the data packet
   // cannot be fragmented.
   PingOptions ^ options = gcnew PingOptions( 64,true );
   Console::WriteLine( "Time to live: {0}", options->Ttl );
   Console::WriteLine( "Don't fragment: {0}", options->DontFragment );
   
   // Send the ping asynchronously.
   // Use the waiter as the user token.
   // When the callback completes, it can wake up this thread.
   pingSender->SendAsync( who, timeout, buffer, options, waiter );
   
   // Prevent this example application from ending.
   // A real application should do something useful
   // when possible.
   waiter->WaitOne();
   Console::WriteLine( "Ping example completed." );
}


void PingCompletedCallback( Object^ /*sender*/, PingCompletedEventArgs^ e )
{
   
   // If the operation was canceled, display a message to the user.
   if ( e->Cancelled )
   {
      Console::WriteLine( "Ping canceled." );
      
      // Let the main thread resume. 
      // UserToken is the AutoResetEvent object that the main thread 
      // is waiting for.
      (dynamic_cast<AutoResetEvent^>(e->UserState))->Set();
   }

   
   // If an error occurred, display the exception to the user.
   if ( e->Error != nullptr )
   {
      Console::WriteLine( "Ping failed:" );
      Console::WriteLine( e->Error->ToString() );
      
      // Let the main thread resume. 
      (dynamic_cast<AutoResetEvent^>(e->UserState))->Set();
   }

   PingReply ^ reply = e->Reply;
   DisplayReply( reply );
   
   // Let the main thread resume.
   (dynamic_cast<AutoResetEvent^>(e->UserState))->Set();
}


void DisplayReply( PingReply ^ reply )
{
   if ( reply == nullptr )
      return;

   Console::WriteLine( "ping status: {0}", reply->Status );
   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.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.ComponentModel;
using System.Threading;

namespace Examples.System.Net.NetworkInformation.PingTest
{
    public class PingExample
    {
        public static void Main (string[] args)
        {
            if (args.Length == 0)
                throw new ArgumentException ("Ping needs a host or IP Address.");

            string who = args[0];
            AutoResetEvent waiter = new AutoResetEvent (false);

            Ping pingSender = new Ping ();

            // When the PingCompleted event is raised,
            // the PingCompletedCallback method is called.
            pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);

            // Wait 12 seconds for a reply.
            int timeout = 12000;

            // Set options for transmission:
            // The data can go through 64 gateways or routers
            // before it is destroyed, and the data packet
            // cannot be fragmented.
            PingOptions options = new PingOptions (64, true);

            Console.WriteLine ("Time to live: {0}", options.Ttl);
            Console.WriteLine ("Don't fragment: {0}", options.DontFragment);

            // Send the ping asynchronously.
            // Use the waiter as the user token.
            // When the callback completes, it can wake up this thread.
            pingSender.SendAsync(who, timeout, buffer, options, waiter);

            // Prevent this example application from ending.
            // A real application should do something useful
            // when possible.
            waiter.WaitOne ();
            Console.WriteLine ("Ping example completed.");
        }

        private static void PingCompletedCallback (object sender, PingCompletedEventArgs e)
        {
            // If the operation was canceled, display a message to the user.
            if (e.Cancelled)
            {
                Console.WriteLine ("Ping canceled.");

                // Let the main thread resume.
                // UserToken is the AutoResetEvent object that the main thread
                // is waiting for.
                ((AutoResetEvent)e.UserState).Set ();
            }

            // If an error occurred, display the exception to the user.
            if (e.Error != null)
            {
                Console.WriteLine ("Ping failed:");
                Console.WriteLine (e.Error.ToString ());

                // Let the main thread resume.
                ((AutoResetEvent)e.UserState).Set();
            }

            PingReply reply = e.Reply;

            DisplayReply (reply);

            // Let the main thread resume.
            ((AutoResetEvent)e.UserState).Set();
        }

        public static void DisplayReply (PingReply reply)
        {
            if (reply == null)
                return;

            Console.WriteLine ("ping status: {0}", reply.Status);
            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);
            }
        }
    }
}

Комментарии

Приложения используют класс , Ping чтобы определить, доступен ли удаленный компьютер.

Топология сети может определить, можно ли Ping успешно связаться с удаленным узлом. Наличие и конфигурация прокси-серверов, оборудования преобразования сетевых адресов (NAT) или брандмауэров могут препятствовать Ping успешному выполнению. Успешное Ping выполнение указывает только на то, что удаленный узел может быть доступен в сети; наличие служб более высокого уровня (например, веб-сервера) на удаленном узле не гарантируется.

Этот класс предоставляет функциональные возможности, аналогичные средству командной строки Ping.exe. Методы Send и SendAsync отправляют сообщение запроса на эхо-запрос ICMP на удаленный компьютер и ожидают ответа на эхо ICMP с этого компьютера. Подробное описание сообщений ICMP см. в документе RFC 792, доступном по адресу https://www.ietf.org.

Следующие типы используются с классом Ping и подробно описаны ниже.

Имя типа Описание
IPStatus Определяет коды состояния, описывающие результат сообщения запроса на эхо ICMP.
PingOptions Позволяет настроить или получить параметры, определяющие, сколько раз пакет запроса может быть переадресован (Ttl), и может ли он быть фрагментирован (DontFragment ).
PingReply Содержит результаты запроса на эхо ICMP.
PingException Возникает при возникновении неустранимой ошибки.
PingCompletedEventArgs Содержит данные, связанные с событиями PingCompleted , которые возникают при SendAsync завершении или отмене вызова.
PingCompletedEventHandler Делегат, предоставляющий метод обратного вызова, вызываемый при SendAsync завершении или отмене вызова.

Методы Send и SendAsync возвращают ответ в объекте PingReply . Свойство PingReply.Status возвращает IPStatus значение, указывающее результат запроса.

При отправке запроса необходимо указать удаленный компьютер. Это можно сделать, указав строку имени узла, IP-адрес в формате строки или IPAddress объект .

Можно также указать любой из следующих типов сведений:

  • Данные, сопровождающие запрос. Указание buffer позволяет узнать время, необходимое для передачи пакета определенного размера на удаленный узел и с удаленного узла, а также максимальную единицу передачи сетевого пути. (См. перегрузки Send или SendAsync , которые принимают buffer параметр.)

  • Можно ли фрагментировать пакет ICMP Echo при передаче. (См. DontFragment свойства и перегрузки Send или SendAsync , которые принимают options параметр.)

  • Сколько раз узлы маршрутизации, такие как маршрутизаторы или шлюзы, могут переадресовывать пакет до того, как он достигнет целевого компьютера или не будет удален. (См. Ttl и перегрузки Send или SendAsync , которые принимают options параметр.)

  • Ограничение времени, в течение которого должен быть получен ответ. (См. перегрузки Send или SendAsync , которые принимают timeout параметр.

Класс Ping предлагает синхронные и асинхронные методы для отправки запроса. Если приложение должно блокироваться во время ожидания ответа, используйте Send методы ; эти методы являются синхронными. Если приложение не должно блокироваться, используйте асинхронные SendAsync методы. Вызов выполняется SendAsync в собственном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие . Приложения используют делегат для PingCompletedEventHandler указания метода, вызываемого для PingCompleted событий. Перед вызовом PingCompletedEventHandlerSendAsyncнеобходимо добавить делегат в событие . Метод делегата получает PingCompletedEventArgs объект , содержащий PingReply объект , описывающий результат SendAsync вызова.

Нельзя использовать один и тот же экземпляр класса для Ping создания нескольких одновременных запросов echo ICMP. Вызов Send во время SendAsync выполнения вызова или несколько SendAsync раз до завершения всех предыдущих вызовов InvalidOperationExceptionвызывает исключение .

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

Ping()

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

Свойства

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

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

Возвращает объект IContainer, который содержит коллекцию Component.

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

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

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

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

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

Получает или задает ISite объекта Component.

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

Методы

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

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

Освобождает неуправляемые ресурсы и удаляет управляемые ресурсы, используемые объектом Ping.

Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Ping, и опционально — управляемые ресурсы.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.

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

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

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

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

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetService(Type)

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

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

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

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

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

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

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

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

(Унаследовано от MarshalByRefObject)
OnPingCompleted(PingCompletedEventArgs)

Вызывает событие PingCompleted.

Send(IPAddress)

Предпринимает попытку отправки сообщения запроса проверки связи ICMP на удаленный компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP.

Send(IPAddress, Int32)

Предпринимает попытку отправки сообщения запроса проверки связи ICMP с заданным буфером данных на удаленный компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP. Этот метод позволяет указать тайм-аут операции.

Send(IPAddress, Int32, Byte[])

Предпринимает попытку отправки сообщения запроса проверки связи ICMP с заданным буфером данных на удаленный компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции.

Send(IPAddress, Int32, Byte[], PingOptions)

Предпринимает попытку отправки сообщения запроса проверки связи ICMP с заданным буфером данных на удаленный компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции и управлять значениями фрагментации и срока жизни пакета сообщения проверки связи ICMP.

Send(IPAddress, TimeSpan, Byte[], PingOptions)

Пытается отправить эхо-сообщение ICMP на компьютер с указанным IPAddressпараметром и получить соответствующее сообщение ответа icMP от этого компьютера.

Send(String)

Предпринимает попытку отправки сообщения запроса проверки связи ICMP на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP.

Send(String, Int32)

Предпринимает попытку отправки сообщения запроса проверки связи ICMP на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP. Этот метод позволяет указать тайм-аут операции.

Send(String, Int32, Byte[])

Предпринимает попытку отправки сообщения запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции.

Send(String, Int32, Byte[], PingOptions)

Предпринимает попытку отправки сообщения запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции и управлять значениями фрагментации и срока жизни пакета ICMP.

Send(String, TimeSpan, Byte[], PingOptions)

Пытается отправить эхо-сообщение ICMP на указанный компьютер и получить соответствующее сообщение ответа icMP от этого компьютера.

SendAsync(IPAddress, Int32, Byte[], Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP с заданным буфером данных на компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции.

SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP с заданным буфером данных на компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции и управлять значениями фрагментации и срока жизни пакета сообщения проверки связи ICMP.

SendAsync(IPAddress, Int32, Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP на удаленный компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции.

SendAsync(IPAddress, Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP на удаленный компьютер с указанным IPAddress и получения от него соответствующего сообщения ответа проверки связи ICMP.

SendAsync(String, Int32, Byte[], Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции.

SendAsync(String, Int32, Byte[], PingOptions, Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции и управлять значениями фрагментации и срока жизни пакета ICMP.

SendAsync(String, Int32, Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP. Эта перегруженная версия метода позволяет указать тайм-аут операции.

SendAsync(String, Object)

Предпринимает попытку асинхронной отправки сообщения запроса проверки связи ICMP на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP.

SendAsyncCancel()

Отменяет все ожидающие асинхронные запросы на отправку сообщений проверки связи ICMP и получает соответствующее сообщение ответа проверки связи ICMP.

SendPingAsync(IPAddress)

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на компьютер с указанным IPAddress и получает от него соответствующее сообщения ответа проверки связи ICMP как асинхронная операция.

SendPingAsync(IPAddress, Int32)

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на компьютер с указанным IPAddress и получает от него соответствующее сообщения ответа проверки связи ICMP как асинхронная операция. Эта перегруженная версия метода позволяет указать тайм-аут операции.

SendPingAsync(IPAddress, Int32, Byte[])

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на компьютер с указанным IPAddress и получает от него соответствующее сообщения ответа проверки связи ICMP как асинхронная операция. Эта перегрузка позволяет указать значение истечения времени ожидания для операции и буфер для использования для отправки и получения.

SendPingAsync(IPAddress, Int32, Byte[], PingOptions)

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на компьютер с указанным IPAddress и получает от него соответствующее сообщение ответа проверки связи ICMP в виде асинхронной операции. Эта перегруженная версия метода позволяет указать тайм-аут операции, буфер для использования для отправки и получения и управлять значениями фрагментации и срока жизни пакета сообщения проверки связи ICMP.

SendPingAsync(IPAddress, TimeSpan, Byte[], PingOptions, CancellationToken)

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на компьютер с указанным IPAddress и получает от него соответствующее сообщение ответа проверки связи ICMP в виде асинхронной операции. Эта перегрузка позволяет указать значение времени ожидания для операции, буфер, используемый для отправки и получения, управление значениями фрагментации и срока жизни, а CancellationToken также для пакета эхо-сообщений ICMP.

SendPingAsync(String)

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получает от него соответствующее сообщения ответа проверки связи ICMP как асинхронная операция.

SendPingAsync(String, Int32)

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получает от него соответствующее сообщения ответа проверки связи ICMP как асинхронная операция. Эта перегруженная версия метода позволяет указать тайм-аут операции.

SendPingAsync(String, Int32, Byte[])

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получает от него соответствующее сообщения ответа проверки связи ICMP как асинхронная операция. Эта перегрузка позволяет указать значение истечения времени ожидания для операции и буфер для использования для отправки и получения.

SendPingAsync(String, Int32, Byte[], PingOptions)

Отправляет сообщение запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получает от него соответствующее сообщения ответа проверки связи ICMP как асинхронная операция. Эта перегруженная версия метода позволяет указать тайм-аут операции, буфер для использования для отправки и получения и управлять значениями фрагментации и срока жизни пакета сообщения проверки связи ICMP.

SendPingAsync(String, TimeSpan, Byte[], PingOptions, CancellationToken)

Отправляет эхо-сообщение ICMP с указанным буфером данных на указанный компьютер и получает соответствующее сообщение ответа на эхо ICMP от этого компьютера в качестве асинхронной операции. Эта перегрузка позволяет указать значение времени ожидания для операции, буфер, используемый для отправки и получения, управление значениями фрагментации и срока жизни, а CancellationToken также для пакета эхо-сообщений ICMP.

ToString()

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

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

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

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

События

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

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

Происходит при завершении или отмене асинхронной операции отправки сообщения проверки связи ICMP и получения соответствующего сообщения ответа проверки связи ICMP.

Явные реализации интерфейса

IDisposable.Dispose()

Освобождает все ресурсы, используемые экземплярами класса Ping.

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

См. также раздел