Ping.SendAsyncとは? わかりやすく解説

Ping.SendAsync メソッド (IPAddress, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されIPAddress を持つコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外種類条件

ArgumentNullException

addressnull 参照 (Visual Basic では Nothing) です。

InvalidOperationException

SendAsync メソッド呼び出し実行中です。

NotSupportedException

addressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

address有効な IP アドレスではありません。

ObjectDisposedException

このオブジェクト破棄されています。

解説解説

SendAsync メソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにする場合は、SendAsync メソッド呼び出します。このメソッドの各呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますSendAsyncイベント発生したときに呼び出されるメソッド指定するには、SendAsync呼び出す前に、PingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

メモメモ

応答を待つ間にアプリケーションブロックさせる場合は、いずれかSend メソッド使用します。これらは同期メソッドです。

このメソッドは、32 バイト (Byte) のデータ バッファICMP エコー メッセージと共に送信します。このメソッドは、ICMP エコー応答メッセージを 5 秒間待ちますその時間内応答受信しない場合メソッドから制御戻りStatus プロパティに TimedOut が設定されます。

このオーバーロードでは、パケットフラグメンテーション転送既定設定使用されます。ICMP エコー メッセージ格納されパケットは、合計パケット サイズが、1 つルーティング ノードローカル コンピュータリモート コンピュータ間で送信できる最大パケット サイズ超えた場合途中で分割される場合あります断片化防ぐにはoptions パラメータ受け取る、SendAsyncいずれかメソッド使用し、DontFragment プロパティtrue設定しますDontFragmenttrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。

パケットまたはパケット フラグメントは、破棄されるまでに、ルーティング ノードによって最大 128 回転されます。この設定変更するには、options パラメータ受け取SendAsyncオーバーロード使用しTtl プロパティ必要な値に設定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Ping.SendAsync メソッド (IPAddress, Int32, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されIPAddress を持つコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外種類条件

ArgumentNullException

addressnull 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

timeout が 0 未満です。

InvalidOperationException

SendAsync の呼び出し実行中です。

NotSupportedException

addressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

address有効な IP アドレスではありません。

ObjectDisposedException

このオブジェクト破棄されています。

解説解説

SendAsync メソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにする場合は、SendAsync メソッド呼び出します。呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますアプリケーションでは、PingCompletedEventHandler デリゲート使用してSendAsyncイベント発生したときに呼び出されるメソッド指定しますSendAsync呼び出す前にPingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

応答を待つ間にアプリケーションブロックさせる場合は、Send メソッド使用します。これらは同期メソッドです。

timeout パラメータによって指定され時間以内ICMP エコー応答メッセージ受信されなかった場合ICMP エコー失敗しStatus プロパティに TimedOut が設定されます。

メモメモ

timeout指定した数値が非常に小さ場合timeoutミリ秒数が経過した後に Ping応答受信されることもあります

このオーバーロードでは、パケットフラグメンテーション転送既定設定使用されます。ICMP エコー メッセージ格納されパケットは、合計パケット サイズが、1 つルーティング ノードローカル コンピュータリモート コンピュータ間で送信できる最大パケット サイズ超えた場合途中で分割される場合あります断片化防ぐにはoptions パラメータ受け取る、SendAsyncいずれかメソッド使用し、DontFragment プロパティtrue設定しますDontFragmenttrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。パケットまたはパケット フラグメント (分割されていた場合) は、破棄されるまでに、ルーティング ノードによって最大 128 回転されます。この設定変更するには、options パラメータ受け取SendAsyncオーバーロード使用しTtl プロパティ必要な値に設定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Ping.SendAsync メソッド (IPAddress, Int32, Byte[], Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されIPAddress を持つコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外種類条件

ArgumentNullException

addressnull 参照 (Visual Basic では Nothing) です。

または

buffernull 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

timeout が 0 未満です。

InvalidOperationException

SendAsync の呼び出し実行中です。

NotSupportedException

addressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

address有効な IP アドレスではありません。

ObjectDisposedException

このオブジェクト破棄されています。

ArgumentException

bufferサイズが 65500 バイト超えてます。

解説解説

このメソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにする場合は、SendAsync メソッド呼び出します。呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますSendAsyncイベント発生したときに呼び出されるメソッド指定するには、SendAsync呼び出す前に、PingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

メモメモ

応答を待つ間にアプリケーションブロックさせる場合は、いずれかSend メソッド使用します。これらは同期メソッドです。

timeout パラメータによって指定され時間以内ICMP エコー応答メッセージ受信されなかった場合ICMP エコー失敗しStatus プロパティに TimedOut が設定されます。

メモメモ

timeout指定した数値が非常に小さ場合timeoutミリ秒数が経過した後に Ping応答受信されることもあります

このオーバーロードでは、パケットフラグメンテーション転送既定設定使用されます。ICMP エコー メッセージ格納されパケットは、合計パケット サイズが、1 つルーティング ノードローカル コンピュータリモート コンピュータ間で送信できる最大パケット サイズ超えた場合途中で分割される場合あります断片化防ぐにはoptions パラメータ受け取る、SendAsyncいずれかメソッド使用し、DontFragment プロパティtrue設定しますDontFragmenttrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。パケットまたはパケット フラグメント (分割されていた場合) は、破棄されるまでに、ルーティング ノードによって最大 128 回転されます。この設定変更するには、options パラメータ受け取る SendASync のオーバーロード使用しTtl プロパティ必要な値に設定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Ping.SendAsync メソッド (String, Int32, Byte[], Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

Public Sub SendAsync ( _
    hostNameOrAddress As String, _
    timeout As Integer, _
    buffer As Byte(), _
    userToken As Object _
)
Dim instance As Ping
Dim hostNameOrAddress As String
Dim timeout As Integer
Dim buffer As Byte()
Dim userToken As Object

instance.SendAsync(hostNameOrAddress, timeout, buffer, userToken)
public void SendAsync (
    string hostNameOrAddress,
    int timeout,
    byte[] buffer,
    Object userToken
)
public:
void SendAsync (
    String^ hostNameOrAddress, 
    int timeout, 
    array<unsigned char>^ buffer, 
    Object^ userToken
)
public void SendAsync (
    String hostNameOrAddress, 
    int timeout, 
    byte[] buffer, 
    Object userToken
)
public function SendAsync (
    hostNameOrAddress : String, 
    timeout : int, 
    buffer : byte[], 
    userToken : Object
)

パラメータ

hostNameOrAddress

ICMP エコー メッセージの送信コンピュータ識別する String。このパラメータの値には、ホスト名または IP アドレス文字列形式指定できます

timeout

エコー メッセージ送信してから ICMP エコー応答メッセージを待つ時間最大値 (ミリ秒単位) を指定する Int32 値。

buffer

ICMP エコー メッセージと共に送信されるデータ格納されICMP エコー応答メッセージ返される Byte 配列配列には、65,500 バイト超えるデータ格納することはできません。

userToken

非同期操作完了したときに呼び出されるメソッドに渡すオブジェクト

例外例外
例外種類条件

ArgumentNullException

hostNameOrAddressnull 参照 (Visual Basic では Nothing) または空の文字列 ("") です。

または

buffernull 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

timeout が 0 未満です。

InvalidOperationException

SendAsync の呼び出し実行中です。

NotSupportedException

hostNameOrAddressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

hostNameOrAddress有効な IP アドレス解決できませんでした

ObjectDisposedException

このオブジェクト破棄されています。

ArgumentException

bufferサイズが 65500 バイト超えてます。

解説解説

SendAsync メソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにする場合は、SendAsync メソッド呼び出します。呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますアプリケーションでは、PingCompletedEventHandler デリゲート使用してSendAsyncイベント発生したときに呼び出されるメソッド指定しますSendAsync呼び出す前にPingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

応答を待つ間にアプリケーションブロックさせる場合は、Send メソッド使用します。これらは同期メソッドです。

timeout パラメータによって指定され時間以内ICMP エコー応答メッセージ受信されなかった場合ICMP エコー失敗しStatus プロパティに TimedOut が設定されます。

メモメモ

timeout指定した数値が非常に小さ場合timeoutミリ秒数が経過した後に Ping応答受信されることもあります

このオーバーロードでは、パケットフラグメンテーション転送既定設定使用されます。ICMP エコー メッセージ格納されパケットは、合計パケット サイズが、1 つルーティング ノードローカル コンピュータリモート コンピュータ間で送信できる最大パケット サイズ超えた場合途中で分割される場合あります断片化防ぐにはoptions パラメータ受け取る、SendAsyncいずれかメソッド使用し、DontFragment プロパティtrue設定しますDontFragmenttrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。パケットまたはパケット フラグメント (分割されていた場合) は、破棄されるまでに、ルーティング ノードによって最大 128 回転されます。この設定変更するには、options パラメータ受け取SendAsyncオーバーロード使用しTtl プロパティ必要な値に設定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Ping.SendAsync メソッド (IPAddress, Int32, Byte[], PingOptions, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されIPAddress を持つコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定しICMP エコー メッセージ パケットフラグメンテーション有効期間 (TTL: time-to-live) の値を制御できます

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

Public Sub SendAsync ( _
    address As IPAddress, _
    timeout As Integer, _
    buffer As Byte(), _
    options As PingOptions, _
    userToken As Object _
)
Dim instance As Ping
Dim address As IPAddress
Dim timeout As Integer
Dim buffer As Byte()
Dim options As PingOptions
Dim userToken As Object

instance.SendAsync(address, timeout, buffer, options, userToken)
public void SendAsync (
    IPAddress address,
    int timeout,
    byte[] buffer,
    PingOptions options,
    Object userToken
)
public:
void SendAsync (
    IPAddress^ address, 
    int timeout, 
    array<unsigned char>^ buffer, 
    PingOptions^ options, 
    Object^ userToken
)
public void SendAsync (
    IPAddress address, 
    int timeout, 
    byte[] buffer, 
    PingOptions options, 
    Object userToken
)
public function SendAsync (
    address : IPAddress, 
    timeout : int, 
    buffer : byte[], 
    options : PingOptions, 
    userToken : Object
)

パラメータ

address

ICMP エコー メッセージの送信コンピュータ識別する IPAddress

timeout

ICMP エコー メッセージと共に送信されるデータ格納されICMP エコー応答メッセージ返される Byte 配列配列には、65,500 バイト超えるデータ格納することはできません。

buffer

エコー メッセージ送信してから ICMP エコー応答メッセージを待つ時間最大値 (ミリ秒単位) を指定する Int32 値。

options

ICMP エコー メッセージ パケットフラグメンテーション有効期間 (TTL: time-to-live) の値を制御するために使用される PingOptions オブジェクト

userToken

非同期操作完了したときに呼び出されるメソッドに渡すオブジェクト

例外例外
例外種類条件

ArgumentNullException

addressnull 参照 (Visual Basic では Nothing) です。

または

buffernull 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

timeout が 0 未満です。

InvalidOperationException

SendAsync の呼び出し実行中です。

NotSupportedException

addressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

address有効な IP アドレスではありません。

ObjectDisposedException

このオブジェクト破棄されています。

ArgumentException

bufferサイズが 65500 バイト超えてます。

解説解説

SendAsync メソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにするには、SendAsync メソッド呼び出します。呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますアプリケーションでは、PingCompletedEventHandler デリゲート使用してSendAsyncイベント発生したときに呼び出されるメソッド指定しますSendAsync呼び出す前にPingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

応答を待つ間にアプリケーションブロックさせる場合は、いずれかSend メソッド使用します。これらは同期メソッドです。

timeout パラメータによって指定され時間以内ICMP エコー応答メッセージ受信されなかった場合ICMP エコー失敗しStatus プロパティに TimedOut が設定されます。

メモメモ

timeout指定した数値が非常に小さ場合timeoutミリ秒数が経過した後に Ping応答受信されることもあります

DontFragment プロパティtrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。

Ttl プロパティ使用して送信先到達するまでに ICMP エコー メッセージ転送できる最大回数指定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例

このメソッド呼び出す方法次のコード例示しますコールバック メソッド実装については、SendAsync メソッドオーバーロードの例を参照してください

次のコード例では、次の名前空間が必要です。

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.");
}

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Ping.SendAsync メソッド (String, Int32, Byte[], PingOptions, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定しICMP パケットフラグメンテーション有効期間 (TTL: time-to-live) 値を制御できます

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

Public Sub SendAsync ( _
    hostNameOrAddress As String, _
    timeout As Integer, _
    buffer As Byte(), _
    options As PingOptions, _
    userToken As Object _
)
Dim instance As Ping
Dim hostNameOrAddress As String
Dim timeout As Integer
Dim buffer As Byte()
Dim options As PingOptions
Dim userToken As Object

instance.SendAsync(hostNameOrAddress, timeout, buffer, options, userToken)
public void SendAsync (
    string hostNameOrAddress,
    int timeout,
    byte[] buffer,
    PingOptions options,
    Object userToken
)
public:
void SendAsync (
    String^ hostNameOrAddress, 
    int timeout, 
    array<unsigned char>^ buffer, 
    PingOptions^ options, 
    Object^ userToken
)
public void SendAsync (
    String hostNameOrAddress, 
    int timeout, 
    byte[] buffer, 
    PingOptions options, 
    Object userToken
)
public function SendAsync (
    hostNameOrAddress : String, 
    timeout : int, 
    buffer : byte[], 
    options : PingOptions, 
    userToken : Object
)

パラメータ

hostNameOrAddress

ICMP エコー メッセージの送信コンピュータ識別する String。このパラメータの値には、ホスト名または IP アドレス文字列形式指定できます

timeout

ICMP エコー メッセージと共に送信されるデータ格納されICMP エコー応答メッセージ返される Byte 配列配列には、65,500 バイト超えるデータ格納することはできません。

buffer

エコー メッセージ送信してから ICMP エコー応答メッセージを待つ時間最大値 (ミリ秒単位) を指定する Int32 値。

options

ICMP エコー メッセージ パケットフラグメンテーション有効期間 (TTL: time-to-live) の値を制御するために使用される PingOptions オブジェクト

userToken

非同期操作完了したときに呼び出されるメソッドに渡すオブジェクト

例外例外
例外種類条件

ArgumentNullException

hostNameOrAddressnull 参照 (Visual Basic では Nothing) または空の文字列 ("") です。

または

buffernull 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

timeout が 0 未満です。

InvalidOperationException

SendAsync の呼び出し実行中です。

NotSupportedException

addressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

hostNameOrAddress有効な IP アドレス解決できませんでした

ObjectDisposedException

このオブジェクト破棄されています。

ArgumentException

bufferサイズが 65500 バイト超えてます。

解説解説

SendAsync メソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにするには、SendAsync メソッド呼び出します。呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますアプリケーションでは、PingCompletedEventHandler デリゲート使用してSendAsyncイベント発生したときに呼び出されるメソッド指定しますSendAsync呼び出す前にPingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

応答を待つ間にアプリケーションブロックさせる場合は、Send メソッド使用します。これらは同期メソッドです。

timeout パラメータによって指定され時間以内ICMP エコー応答メッセージ受信されなかった場合ICMP エコー失敗しStatus プロパティに TimedOut が設定されます。

メモメモ

timeout指定した数値が非常に小さ場合timeoutミリ秒数が経過した後に Ping応答受信されることもあります

DontFragment プロパティtrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。

Ttl プロパティ使用して送信先到達するまでに ICMP エコー メッセージ転送できる最大回数指定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例

このメソッド呼び出す方法次のコード例示します

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.");
        }

        public 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);
            }
        }
    }
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Ping.SendAsync メソッド

非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージコンピュータ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します
オーバーロードの一覧オーバーロードの一覧

名前 説明
Ping.SendAsync (IPAddress, Object) 指定されIPAddress を持つコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します
Ping.SendAsync (String, Object) 指定されコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します
Ping.SendAsync (IPAddress, Int32, Object) 指定されIPAddress を持つコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます
Ping.SendAsync (String, Int32, Object) 指定されコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます
Ping.SendAsync (IPAddress, Int32, Byte[], Object) 指定されIPAddress を持つコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます
Ping.SendAsync (String, Int32, Byte[], Object) 指定されコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます
Ping.SendAsync (IPAddress, Int32, Byte[], PingOptions, Object) 指定されIPAddress を持つコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定しICMP エコー メッセージ パケットフラグメンテーション有効期間 (TTL: time-to-live) の値を制御できます
Ping.SendAsync (String, Int32, Byte[], PingOptions, Object) 指定されコンピュータに、指定されデータ バッファと共に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ非同期的に送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定しICMP パケットフラグメンテーション有効期間 (TTL: time-to-live) 値を制御できます
参照参照

関連項目

Ping クラス
Ping メンバ
System.Net.NetworkInformation 名前空間

Ping.SendAsync メソッド (String, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

Public Sub SendAsync ( _
    hostNameOrAddress As String, _
    userToken As Object _
)
Dim instance As Ping
Dim hostNameOrAddress As String
Dim userToken As Object

instance.SendAsync(hostNameOrAddress, userToken)
public void SendAsync (
    string hostNameOrAddress,
    Object userToken
)
public:
void SendAsync (
    String^ hostNameOrAddress, 
    Object^ userToken
)
public void SendAsync (
    String hostNameOrAddress, 
    Object userToken
)
public function SendAsync (
    hostNameOrAddress : String, 
    userToken : Object
)

パラメータ

hostNameOrAddress

ICMP エコー メッセージの送信コンピュータ識別する String。このパラメータの値には、ホスト名または IP アドレス文字列形式指定できます

userToken

非同期操作完了したときに呼び出されるメソッドに渡すオブジェクト

例外例外
例外種類条件

ArgumentNullException

hostNameOrAddressnull 参照 (Visual Basic では Nothing) または空の文字列 ("") です。

InvalidOperationException

SendAsync の呼び出し実行中です。

NotSupportedException

addressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

hostNameOrAddress有効な IP アドレス解決できませんでした

ObjectDisposedException

このオブジェクト破棄されています。

解説解説

SendAsync メソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにする場合は、SendAsync メソッド呼び出します。このメソッドの各呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますSendAsyncイベント発生したときに呼び出されるメソッド指定するには、SendAsync呼び出す前に、PingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

メモメモ

応答を待つ間にアプリケーションブロックさせる場合は、Send メソッド使用します。これらは同期メソッドです。

このメソッドは、32 バイト (Byte) のデータ バッファICMP エコー メッセージと共に送信します。このメソッドは、ICMP エコー応答メッセージを 5 秒待ちますその時間内応答受信しない場合メソッドから制御戻りStatus プロパティに TimedOut が設定されます。

このオーバーロードでは、パケットフラグメンテーション転送既定設定使用されます。ICMP エコー メッセージ格納されパケットは、合計パケット サイズが、1 つルーティング ノードローカル コンピュータリモート コンピュータ間で送信できる最大パケット サイズ超えた場合途中で分割される場合あります断片化防ぐにはoptions パラメータ受け取る、SendASync のいずれかメソッド使用し、DontFragment プロパティtrue設定しますDontFragmenttrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。

パケットまたはパケット フラグメントは、破棄されるまでに、ルーティング ノードによって最大 128 回転されます。この設定変更するには、options パラメータ受け取SendAsyncオーバーロード使用しTtl プロパティ必要な値に設定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Ping.SendAsync メソッド (String, Int32, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定されコンピュータに、非同期的に ICMP (インターネット コントロール メッセージ プロトコル) エコー メッセージ送信し、そのコンピュータから対応する ICMP エコー応答メッセージ受信します。このオーバーロード使用して操作タイムアウト値を指定できます

名前空間: System.Net.NetworkInformation
アセンブリ: System (system.dll 内)
構文構文

Public Sub SendAsync ( _
    hostNameOrAddress As String, _
    timeout As Integer, _
    userToken As Object _
)
Dim instance As Ping
Dim hostNameOrAddress As String
Dim timeout As Integer
Dim userToken As Object

instance.SendAsync(hostNameOrAddress, timeout, userToken)
public void SendAsync (
    string hostNameOrAddress,
    int timeout,
    Object userToken
)
public:
void SendAsync (
    String^ hostNameOrAddress, 
    int timeout, 
    Object^ userToken
)
public void SendAsync (
    String hostNameOrAddress, 
    int timeout, 
    Object userToken
)
public function SendAsync (
    hostNameOrAddress : String, 
    timeout : int, 
    userToken : Object
)

パラメータ

hostNameOrAddress

ICMP エコー メッセージの送信コンピュータ識別する String。このパラメータの値には、ホスト名または IP アドレス文字列形式指定できます

timeout

エコー メッセージ送信してから ICMP エコー応答メッセージを待つ時間最大値 (ミリ秒単位) を指定する Int32 値。

userToken

非同期操作完了したときに呼び出されるメソッドに渡すオブジェクト

例外例外
例外種類条件

ArgumentNullException

hostNameOrAddressnull 参照 (Visual Basic では Nothing) または空の文字列 ("") です。

ArgumentOutOfRangeException

timeout が 0 未満です。

InvalidOperationException

SendAsync の呼び出し実行中です。

NotSupportedException

hostNameOrAddressIPv6 アドレスですが、ローカル コンピュータでは Windows 2000 より前のオペレーティング システム動作してます。

PingException

ICMP メッセージの送信中または受信中に例外スローされました。スローされた実際の例外については内部例外参照してください

SocketException

hostNameOrAddress有効な IP アドレス解決できませんでした

ObjectDisposedException

このオブジェクト破棄されています。

解説解説

SendAsync メソッドは、エコー メッセージ非同期的に送信し操作終了 (正常終了異常終了を含む) したときに、アプリケーションステータス返しますアプリケーションブロックしないようにする場合は、SendAsync メソッド呼び出します。呼び出しは、スレッド プールから自動的に割り当てられ別個のスレッド実行されます。非同期操作完了すると、PingCompleted イベント発生しますアプリケーションでは、PingCompletedEventHandler デリゲート使用してSendAsyncイベント発生したときに呼び出されるメソッド指定しますSendAsync呼び出す前にPingCompletedEventHandler デリゲートイベント追加する必要がありますデリゲートメソッドは、SendAsync 呼び出し結果を表す PingReply オブジェクト格納された PingCompletedEventArgs オブジェクト受け取りますPingCompletedEventArgs オブジェクトは、UserState プロパティ継承します。このプロパティは、SendAsync呼び出し渡されuserToken オブジェクト保持します

応答を待つ間にアプリケーションブロックさせる場合は、Send メソッド使用します。これらは同期メソッドです。

timeout パラメータによって指定され時間以内ICMP エコー応答メッセージ受信されなかった場合ICMP エコー失敗しStatus プロパティに TimedOut が設定されます。

メモメモ

timeout指定した数値が非常に小さ場合timeoutミリ秒数が経過した後に Ping応答受信されることもあります

このオーバーロードでは、パケットフラグメンテーション転送既定設定使用されます。ICMP エコー メッセージ格納されパケットは、合計パケット サイズが、1 つルーティング ノードローカル コンピュータリモート コンピュータ間で送信できる最大パケット サイズ超えた場合途中で分割される場合あります断片化防ぐにはoptions パラメータ受け取る、SendAsyncいずれかメソッド使用し、DontFragment プロパティtrue設定しますDontFragmenttrue のときに、合計パケット サイズが、ローカル コンピュータリモート コンピュータの間にあるいずれかルーティング ノード送信できる最大パケット サイズ超えた場合ICMP エコー要求失敗します。これが発生した場合Status は PacketTooBig に設定されます。パケットまたはパケット フラグメント (分割されていた場合) は、破棄されるまでに、ルーティング ノードによって最大 128 回転されます。この設定変更するには、options パラメータ受け取SendAsyncオーバーロード使用しTtl プロパティ必要な値に設定しますパケット指定回数転送されても送信先到達しなかった場合パケット破棄されICMP エコー要求失敗します。これが発生した場合Status は TtlExpired に設定されます。

使用例使用例
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Ping.SendAsync」の関連用語

Ping.SendAsyncのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Ping.SendAsyncのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS