Ping.SendAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP (ICMP) на компьютер и получить соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера.
Перегрузки
| Имя | Описание |
|---|---|
| SendAsync(String, Int32, Byte[], PingOptions, Object) |
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP с указанным буфером данных на указанный компьютер и получает соответствующее сообщение ответа на эхо-сообщение ICMP от этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции и фрагментации элемента управления и значения времени в реальном времени для пакета ICMP. |
| SendAsync(IPAddress, Int32, Byte[], PingOptions, Object) |
Асинхронно пытается отправить сообщение эхо-сообщения протокола ICMP с указанным буфером данных на компьютер, имеющий указанный IPAddressобъект, и получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции и фрагментации элемента управления и значения времени в реальном времени для пакета эхо-сообщений ICMP. |
| SendAsync(String, Int32, Byte[], Object) |
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP с указанным буфером данных на указанный компьютер и получает соответствующее сообщение ответа на эхо-сообщение ICMP от этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции. |
| SendAsync(IPAddress, Int32, Byte[], Object) |
Асинхронно пытается отправить сообщение эхо-сообщения протокола ICMP с указанным буфером данных на компьютер, имеющий указанный IPAddressобъект, и получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции. |
| SendAsync(IPAddress, Int32, Object) |
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP (ICMP) на указанный компьютер IPAddressи получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции. |
| SendAsync(String, Object) |
Асинхронно пытается отправить сообщение об эхо-сообщении icMP на указанный компьютер и получить соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. |
| SendAsync(IPAddress, Object) |
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP (ICMP) на указанный компьютер IPAddressи получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. |
| SendAsync(String, Int32, Object) |
Асинхронно пытается отправить сообщение об эхо-сообщении icMP на указанный компьютер и получить соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции. |
Комментарии
Эти методы не приводят к блокировке основного потока приложения. Если вы хотите заблокировать время ожидания сообщения ответа на эхо-ответ ICMP, используйте Send методы.
Замечание
IP-адрес, возвращаемый любым из SendAsync методов, может исходить от вредоносного удаленного компьютера. Не подключайтесь к удаленному компьютеру с помощью этого. Используйте DNS для определения IP-адреса компьютера, к которому требуется подключиться.
SendAsync(String, Int32, Byte[], PingOptions, Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP с указанным буфером данных на указанный компьютер и получает соответствующее сообщение ответа на эхо-сообщение ICMP от этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции и фрагментации элемента управления и значения времени в реальном времени для пакета ICMP.
public:
void SendAsync(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken);
member this.SendAsync : string * int * byte[] * System.Net.NetworkInformation.PingOptions * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), options As PingOptions, userToken As Object)
Параметры
- hostNameOrAddress
- String
Объект, String определяющий компьютер, который является назначением для сообщения эхо ICMP. Значение, указанное для этого параметра, может быть именем узла или строковым представлением IP-адреса.
- timeout
- Int32
Значение Int32 , указывающее максимальное количество миллисекунда (после отправки сообщения эхо) для ожидания сообщения ответа на эхо-ответ ICMP.
- buffer
- Byte[]
Byte Массив, содержащий данные, отправляемые с сообщением эхо ICMP и возвращаемый в ответном сообщении ICMP. Массив не может содержать более 65 500 байт.
- options
- PingOptions
Объект PingOptions , используемый для управления фрагментацией и значениями времени в реальном времени для пакета эхо-сообщений ICMP.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
hostNameOrAddress имеет null или является пустой строкой ("").
–или–
buffer равно null.
timeout меньше нуля.
Вызов SendAsync выполняется.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
hostNameOrAddress не удалось разрешить допустимый IP-адрес.
Этот объект был удален.
buffer Размер превышает 65500 байт.
.NET 7 и более поздних версий только в Linux: процесс не является привилегированным и buffer не пуст.
Примеры
В следующем примере кода показано, как вызвать этот метод.
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);
}
}
}
}
Комментарии
Метод SendAsync отправляет сообщение Echo асинхронно, а когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync если приложение не должно блокироваться. Каждый вызов выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Приложения используют PingCompletedEventHandler делегат для указания метода, вызываемого при SendAsync вызове события. Перед вызовом PingCompletedEventHandlerSendAsyncнеобходимо добавить делегат в событие. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Если приложение должно блокироваться во время ожидания ответа, используйте Send методы. Эти методы синхронны.
Если сообщение ответа на эхо-сообщение ICMP не получено в течение времени, указанного timeout параметром, то эхо ICMP завершается ошибкой, а Status для свойства задано значение TimedOut.
Замечание
При указании очень небольших timeoutчисел для ответа Ping можно получить даже в том случае, если timeout миллисекунда прошло.
DontFragment Если свойство равно true и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение .
Ttl Используйте свойство, чтобы указать максимальное количество переадресации сообщения эхо ICMP перед достижением назначения. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .
Применяется к
SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение эхо-сообщения протокола ICMP с указанным буфером данных на компьютер, имеющий указанный IPAddressобъект, и получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции и фрагментации элемента управления и значения времени в реальном времени для пакета эхо-сообщений ICMP.
public:
void SendAsync(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken);
member this.SendAsync : System.Net.IPAddress * int * byte[] * System.Net.NetworkInformation.PingOptions * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, buffer As Byte(), options As PingOptions, userToken As Object)
Параметры
- address
- IPAddress
Объект IPAddress , определяющий компьютер, который является назначением для сообщения эхо ICMP.
- timeout
- Int32
Значение Int32 , указывающее максимальное количество миллисекунда (после отправки сообщения эхо) для ожидания сообщения ответа на эхо-ответ ICMP.
- buffer
- Byte[]
Byte Массив, содержащий данные, отправляемые с сообщением эхо ICMP и возвращаемый в ответном сообщении ICMP. Массив не может содержать более 65 500 байт.
- options
- PingOptions
Объект PingOptions , используемый для управления фрагментацией и значениями времени в реальном времени для пакета эхо-сообщений ICMP.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
address или buffer есть null.
timeout меньше нуля.
Вызов SendAsync выполняется.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
address недопустимый IP-адрес.
Этот объект был удален.
buffer Размер превышает 65500 байт.
.NET 7 и более поздних версий только в Linux: процесс не является привилегированным и buffer не пуст.
Примеры
В следующем примере кода показано, как вызвать этот метод. Реализация метода обратного вызова см. в SendAsync разделе примера перегрузки метода.
В следующем примере кода требуются следующие пространства имен:
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading;
Следующий пример кода отправляет асинхронное сообщение эхо-сообщения ICMP.
public static void AsyncComplexLocalPing ()
{
// Get an object that will block the main thread.
AutoResetEvent waiter = new AutoResetEvent (false);
// Ping's the local machine.
Ping pingSender = new Ping ();
// When the PingCompleted event is raised,
// the PingCompletedCallback method is called.
pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);
IPAddress address = IPAddress.Loopback;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
// Wait 10 seconds for a reply.
int timeout = 10000;
// 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);
// Send the ping asynchronously.
// Use the waiter as the user token.
// When the callback completes, it can wake up this thread.
pingSender.SendAsync (address, 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.");
}
Комментарии
Метод SendAsync отправляет сообщение Echo асинхронно, а когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync если приложение не должно блокироваться. Каждый вызов выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Приложения используют PingCompletedEventHandler делегат для указания метода, вызываемого при SendAsync вызове события. Перед вызовом PingCompletedEventHandlerSendAsyncнеобходимо добавить делегат в событие. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Если приложение блокируется во время ожидания ответа, используйте Send методы. Эти методы синхронны.
Если сообщение ответа на эхо-сообщение ICMP не получено в течение времени, указанного timeout параметром, то эхо ICMP завершается ошибкой, а Status для свойства задано значение TimedOut.
Замечание
При указании очень небольших timeoutчисел для ответа Ping можно получить даже в том случае, если timeout миллисекунда прошло.
DontFragment Если свойство равно true и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение .
Ttl Используйте свойство, чтобы указать максимальное количество переадресации сообщения эхо ICMP перед достижением назначения. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .
Применяется к
SendAsync(String, Int32, Byte[], Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP с указанным буфером данных на указанный компьютер и получает соответствующее сообщение ответа на эхо-сообщение ICMP от этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции.
public:
void SendAsync(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, object userToken);
member this.SendAsync : string * int * byte[] * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), userToken As Object)
Параметры
- hostNameOrAddress
- String
Объект, String определяющий компьютер, который является назначением для сообщения эхо ICMP. Значение, указанное для этого параметра, может быть именем узла или строковым представлением IP-адреса.
- timeout
- Int32
Значение Int32 , указывающее максимальное количество миллисекунда (после отправки сообщения эхо) для ожидания сообщения ответа на эхо-ответ ICMP.
- buffer
- Byte[]
Byte Массив, содержащий данные, отправляемые с сообщением эхо ICMP и возвращаемый в ответном сообщении ICMP. Массив не может содержать более 65 500 байт.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
hostNameOrAddress имеет null или является пустой строкой ("").
–или–
buffer равно null.
timeout меньше нуля.
Вызов SendAsync выполняется.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
hostNameOrAddress не удалось разрешить допустимый IP-адрес.
Этот объект был удален.
buffer Размер превышает 65500 байт.
.NET 7 и более поздних версий только в Linux: процесс не является привилегированным и buffer не пуст.
Примеры
В следующем примере кода показано, как вызвать перегрузку SendAsync , см Ping . обзор класса.
Комментарии
Метод SendAsync отправляет сообщение Echo асинхронно, а когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync когда приложение не должно блокироваться. Каждый вызов выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Приложения используют PingCompletedEventHandler делегат для указания метода, вызываемого при SendAsync вызове события. Перед вызовом PingCompletedEventHandlerSendAsyncнеобходимо добавить делегат в событие. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Если приложение должно блокироваться во время ожидания ответа, используйте Send методы. Эти методы синхронны.
Если сообщение ответа на эхо-сообщение ICMP не получено в течение времени, указанного timeout параметром, то эхо ICMP завершается ошибкой, а Status для свойства задано значение TimedOut.
Замечание
При указании очень небольших timeoutчисел для ответа Ping можно получить даже в том случае, если timeout миллисекунда прошло.
Эта перегрузка использует параметры по умолчанию для фрагментации пакетов и пересылки пакетов. Пакет, содержащий эхо-сообщение ICMP, может быть фрагментирован при передаче, если общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами. Чтобы предотвратить фрагментацию, используйте один из SendAsync методов, который принимает options параметр, и задайте DontFragment для свойства значение true.
true Если DontFragment и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение . Фрагменты пакета или пакета (если фрагментированы) можно перенаправить с помощью узлов маршрутизации 128 раз перед удалением. Чтобы изменить этот параметр, используйте SendAsync перегрузку, options принимающую параметр, и задайте Ttl для свойства требуемое значение. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .
Применяется к
SendAsync(IPAddress, Int32, Byte[], Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение эхо-сообщения протокола ICMP с указанным буфером данных на компьютер, имеющий указанный IPAddressобъект, и получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции.
public:
void SendAsync(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, object userToken);
member this.SendAsync : System.Net.IPAddress * int * byte[] * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, buffer As Byte(), userToken As Object)
Параметры
- address
- IPAddress
Объект IPAddress , определяющий компьютер, который является назначением для сообщения эхо ICMP.
- timeout
- Int32
Значение Int32 , указывающее максимальное количество миллисекунда (после отправки сообщения эхо) для ожидания сообщения ответа на эхо-ответ ICMP.
- buffer
- Byte[]
Byte Массив, содержащий данные, отправляемые с сообщением эхо ICMP и возвращаемый в ответном сообщении ICMP. Массив не может содержать более 65 500 байт.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
address или buffer есть null.
timeout меньше нуля.
Вызов SendAsync выполняется.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
address недопустимый IP-адрес.
Этот объект был удален.
buffer Размер превышает 65500 байт.
.NET 7 и более поздних версий только в Linux: процесс не является привилегированным и buffer не пуст.
Примеры
Пример кода, демонстрирующий вызов SendAsync перегрузки, см. в обзоре Ping класса.
Комментарии
Этот метод отправляет сообщение эхо-сообщения асинхронно и, когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync когда приложение не должно блокироваться. Каждый вызов выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Чтобы указать метод, который вызывается при SendAsync вызове события, необходимо добавить PingCompletedEventHandler делегат в событие перед вызовом SendAsync. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Замечание
Если приложение блокируется во время ожидания ответа, используйте Send методы. Эти методы синхронны.
Если сообщение ответа на эхо-сообщение ICMP не получено в течение времени, указанного timeout параметром, то эхо ICMP завершается ошибкой, а Status для свойства задано значение TimedOut.
Замечание
При указании очень небольших timeoutчисел для ответа Ping можно получить даже в том случае, если timeout миллисекунда прошло.
Эта перегрузка использует параметры по умолчанию для фрагментации пакетов и пересылки пакетов. Пакет, содержащий эхо-сообщение ICMP, может быть фрагментирован при передаче, если общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами. Чтобы предотвратить фрагментацию, используйте один из SendAsync методов, который принимает options параметр, и задайте DontFragment для свойства значение true.
true Если DontFragment и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение . Фрагменты пакета или пакета (если фрагментированы) можно перенаправить с помощью узлов маршрутизации 128 раз перед удалением. Чтобы изменить этот параметр, используйте SendAsync перегрузку, options принимающую параметр, и задайте Ttl для свойства требуемое значение. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .
Применяется к
SendAsync(IPAddress, Int32, Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP (ICMP) на указанный компьютер IPAddressи получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции.
public:
void SendAsync(System::Net::IPAddress ^ address, int timeout, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, object userToken);
member this.SendAsync : System.Net.IPAddress * int * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, userToken As Object)
Параметры
- address
- IPAddress
Объект IPAddress , определяющий компьютер, который является назначением для сообщения эхо ICMP.
- timeout
- Int32
Значение Int32 , указывающее максимальное количество миллисекунда (после отправки сообщения эхо) для ожидания сообщения ответа на эхо-ответ ICMP.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
address равно null.
timeout меньше нуля.
Выполняется вызов SendAsync(IPAddress, Int32, Byte[], Object) метода.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
address недопустимый IP-адрес.
Этот объект был удален.
Примеры
Пример кода, демонстрирующий вызов SendAsync перегрузки, см. в обзоре Ping класса.
Комментарии
Метод SendAsync отправляет сообщение Echo асинхронно, а когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync когда приложение не должно блокироваться. Каждый вызов выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Приложения используют PingCompletedEventHandler делегат для указания метода, вызываемого при SendAsync вызове события. Перед вызовом PingCompletedEventHandlerSendAsyncнеобходимо добавить делегат в событие. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Если приложение должно блокироваться во время ожидания ответа, используйте Send методы. Эти методы синхронны.
Если сообщение ответа на эхо-сообщение ICMP не получено в течение времени, указанного timeout параметром, то эхо ICMP завершается ошибкой, а Status для свойства задано значение TimedOut.
Замечание
При указании очень небольших timeoutчисел для ответа Ping можно получить даже в том случае, если timeout миллисекунда прошло.
Эта перегрузка использует параметры по умолчанию для фрагментации пакетов и пересылки пакетов. Пакет, содержащий эхо-сообщение ICMP, может быть фрагментирован при передаче, если общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами. Чтобы предотвратить фрагментацию, используйте один из SendAsync методов, который принимает options параметр, и задайте DontFragment для свойства значение true.
true Если DontFragment и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение . Фрагменты пакета или пакета (если фрагментированы) можно перенаправить с помощью узлов маршрутизации 128 раз перед удалением. Чтобы изменить этот параметр, используйте SendAsync перегрузку, options принимающую параметр, и задайте Ttl для свойства требуемое значение. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .
Применяется к
SendAsync(String, Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение об эхо-сообщении icMP на указанный компьютер и получить соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера.
public:
void SendAsync(System::String ^ hostNameOrAddress, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, object? userToken);
public void SendAsync(string hostNameOrAddress, object userToken);
member this.SendAsync : string * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, userToken As Object)
Параметры
- hostNameOrAddress
- String
Объект, String определяющий компьютер, который является назначением для сообщения эхо ICMP. Значение, указанное для этого параметра, может быть именем узла или строковым представлением IP-адреса.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
hostNameOrAddress имеет null или является пустой строкой ("").
Выполняется вызов SendAsync(String, Object) метода.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
hostNameOrAddress не удалось разрешить допустимый IP-адрес.
Этот объект был удален.
Примеры
Пример кода, демонстрирующий вызов SendAsync метода, см. в обзоре Ping класса.
Комментарии
Метод SendAsync отправляет сообщение эхо-сообщения асинхронно и, когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync когда приложение не должно блокироваться. Каждый вызов этого метода выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Чтобы указать метод, который вызывается при SendAsync вызове события, необходимо добавить PingCompletedEventHandler делегат в событие перед вызовом SendAsync. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Замечание
Если приложение должно блокироваться во время ожидания ответа, используйте Send методы. Эти методы синхронны.
Этот метод отправляет 32 Byte буфера данных с сообщением эхо ICMP. Метод ожидает пять секунд в ответном сообщении ICMP. Если он не получает ответ в то время, метод возвращается и Status свойство задается.TimedOut
Эта перегрузка использует параметры по умолчанию для фрагментации пакетов и пересылки пакетов. Пакет, содержащий эхо-сообщение ICMP, может быть фрагментирован при передаче, если общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами. Чтобы предотвратить фрагментацию, используйте один из SendAsync методов, который принимает options параметр, и задайте DontFragment для свойства значение true.
true Если DontFragment и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение .
Фрагменты пакетов или пакетов можно перенаправить с помощью узлов маршрутизации 128 раз перед отменой. Чтобы изменить этот параметр, используйте SendAsync перегрузку, options принимающую параметр, и задайте Ttl для свойства требуемое значение. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .
Применяется к
SendAsync(IPAddress, Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение об эхо-сообщении протокола ICMP (ICMP) на указанный компьютер IPAddressи получает соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера.
public:
void SendAsync(System::Net::IPAddress ^ address, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, object? userToken);
public void SendAsync(System.Net.IPAddress address, object userToken);
member this.SendAsync : System.Net.IPAddress * obj -> unit
Public Sub SendAsync (address As IPAddress, userToken As Object)
Параметры
- address
- IPAddress
Объект IPAddress , определяющий компьютер, который является назначением для сообщения эхо ICMP.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
address равно null.
Выполняется вызов SendAsync метода.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
address недопустимый IP-адрес.
Этот объект был удален.
Примеры
Пример кода, демонстрирующий вызов SendAsync метода, см. в обзоре Ping класса.
Комментарии
Метод SendAsync отправляет сообщение эхо-сообщения асинхронно и, когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync когда приложение не должно блокироваться. Каждый вызов этого метода выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Чтобы указать метод, который вызывается при SendAsync вызове события, необходимо добавить PingCompletedEventHandler делегат в событие перед вызовом SendAsync. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Замечание
Если приложение должно блокироваться во время ожидания ответа, используйте один из Send методов. Эти методы синхронны.
Этот метод отправляет 32 Byte буфера данных с сообщением эхо ICMP. Метод ожидает пять секунд в ответном сообщении ICMP. Если он не получает ответ в это время, метод возвращается и Status свойство задается.TimedOut
Эта перегрузка использует параметры по умолчанию для фрагментации пакетов и пересылки пакетов. Пакет, содержащий эхо-сообщение ICMP, может быть фрагментирован при передаче, если общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами. Чтобы предотвратить фрагментацию, используйте один из SendAsync методов, который принимает options параметр, и задайте DontFragment для свойства значение true.
true Если DontFragment и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение .
Фрагменты пакетов или пакетов можно перенаправить с помощью узлов маршрутизации 128 раз перед отменой. Чтобы изменить этот параметр, используйте SendAsync перегрузку, options принимающую параметр, и задайте Ttl для свойства требуемое значение. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .
Применяется к
SendAsync(String, Int32, Object)
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
- Исходный код:
- Ping.cs
Асинхронно пытается отправить сообщение об эхо-сообщении icMP на указанный компьютер и получить соответствующее сообщение ответа на эхо-сообщение ICMP с этого компьютера. Эта перегрузка позволяет указать значение времени ожидания для операции.
public:
void SendAsync(System::String ^ hostNameOrAddress, int timeout, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, object userToken);
member this.SendAsync : string * int * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, userToken As Object)
Параметры
- hostNameOrAddress
- String
Объект, String определяющий компьютер, который является назначением для сообщения эхо ICMP. Значение, указанное для этого параметра, может быть именем узла или строковым представлением IP-адреса.
- timeout
- Int32
Значение Int32 , указывающее максимальное количество миллисекунда (после отправки сообщения эхо) для ожидания сообщения ответа на эхо-ответ ICMP.
- userToken
- Object
Объект, передаваемый методу, вызываемый при завершении асинхронной операции.
Исключения
hostNameOrAddress имеет null или является пустой строкой ("").
timeout меньше нуля.
Вызов SendAsync выполняется.
Исключение было вызвано при отправке или получении сообщений ICMP. См. внутреннее исключение для точного исключения, которое было создано.
hostNameOrAddress не удалось разрешить допустимый IP-адрес.
Этот объект был удален.
Примеры
Пример кода, демонстрирующий вызов SendAsync метода, см. в обзоре Ping класса.
Комментарии
Метод SendAsync отправляет сообщение Echo асинхронно, а когда операция завершается (успешно или неудачно), возвращает состояние в приложение. Вызовите метод, SendAsync когда приложение не должно блокироваться. Каждый вызов выполняется в отдельном потоке, который автоматически выделяется из пула потоков. После завершения асинхронной операции возникает PingCompleted событие. Приложения используют PingCompletedEventHandler делегат для указания метода, вызываемого при SendAsync вызове события. Перед вызовом PingCompletedEventHandlerSendAsyncнеобходимо добавить делегат в событие. Метод делегата получает PingCompletedEventArgs объект, содержащий PingReply объект, описывающий результат SendAsync вызова. Объект PingCompletedEventArgs наследует UserState свойство. Это свойство содержит объект, переданный userTokenSendAsync в вызов.
Если приложение должно блокироваться во время ожидания ответа, используйте Send методы. Эти методы синхронны.
Если сообщение ответа на эхо-сообщение ICMP не получено в течение времени, указанного timeout параметром, то эхо ICMP завершается ошибкой, а Status для свойства задано значение TimedOut.
Замечание
При указании очень небольших timeoutчисел для ответа Ping можно получить даже в том случае, если timeout миллисекунда прошло.
Эта перегрузка использует параметры по умолчанию для фрагментации пакетов и пересылки пакетов. Пакет, содержащий эхо-сообщение ICMP, может быть фрагментирован при передаче, если общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами. Чтобы предотвратить фрагментацию, используйте один из SendAsync методов, который принимает options параметр, и задайте DontFragment для свойства значение true.
true Если DontFragment и общий размер пакета превышает максимальный размер пакета, который может передаваться одним из узлов маршрутизации между локальными и удаленными компьютерами, запрос эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано PacketTooBigзначение . Фрагменты пакета или пакета (если фрагментированы) можно перенаправить с помощью узлов маршрутизации 128 раз перед удалением. Чтобы изменить этот параметр, используйте SendAsync перегрузку, options принимающую параметр, и задайте Ttl для свойства требуемое значение. Если пакет не достигает своего назначения после переадресации указанного количества раз, пакет удаляется, а запрос на эхо ICMP завершается сбоем. Когда это происходит, Status для параметра задано TtlExpiredзначение .