Ping::SendPingAsync Method (IPAddress^, Int32, array<Byte>^)
Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified IPAddress, and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation and a buffer to use for send and receive.
Assembly: System (in System.dll)
public: [HostProtectionAttribute(SecurityAction::LinkDemand, ExternalThreading = true)] Task<PingReply^>^ SendPingAsync( IPAddress^ address, int timeout, array<unsigned char>^ buffer )
Parameters
- address
-
Type:
System.Net::IPAddress^
An IP address that identifies the computer that is the destination for the ICMP echo message.
- timeout
-
Type:
System::Int32
The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
- buffer
-
Type:
array<System::Byte>^
A Byte array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
Return Value
Type: System.Threading.Tasks::Task<PingReply^>^Returns Task<TResult>.
The task object representing the asynchronous operation.
| Exception | Condition |
|---|---|
| ArgumentNullException | address is null. -or- buffer is null. |
| ArgumentOutOfRangeException | timeout is less than zero. |
| InvalidOperationException | A call to SendPingAsync is in progress. |
| PingException | An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown. |
| SocketException | address is not a valid IP address. |
| ObjectDisposedException | This object has been disposed. |
| ArgumentException | The size of buffer exceeds 65,500 bytes. |
This operation will not block. The returned Task<TResult>> object will complete after the ICMP packet has been sent and the response has been received.
Available since 4.5