PingReply クラス

定義

Send 操作または SendAsync 操作の結果として得られるステータスとデータに関する情報を提供します。

public ref class PingReply
public class PingReply
type PingReply = class
Public Class PingReply
継承
PingReply

次のコード例では、クラスを使用して Ping ICMP エコー要求を同期的に送信し、応答を表示する方法を示します。

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::Text;

// args[1] can be an IPaddress or host name.
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   
   Ping ^ pingSender = gcnew Ping;
   PingOptions ^ options = gcnew PingOptions;
   
   // Use the default Ttl value which is 128,
   // but change the fragmentation behavior.
   options->DontFragment = true;
   
   // Create a buffer of 32 bytes of data to be transmitted.
   String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   array<Byte>^buffer = Encoding::ASCII->GetBytes( data );
   int timeout = 120;
   PingReply ^ reply = pingSender->Send( args[ 1 ], timeout, buffer, options );
   
   if ( reply->Status == IPStatus::Success )
   {
      Console::WriteLine( "Address: {0}", reply->Address->ToString() );
      Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime );
      Console::WriteLine( "Time to live: {0}", reply->Options->Ttl );
      Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment );
      Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length );
   }

   
}
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;

namespace Examples.System.Net.NetworkInformation.PingTest
{
    public class PingExample
    {
        // args[0] can be an IPaddress or host name.
        public static void Main (string[] args)
        {
            Ping pingSender = new Ping ();
            PingOptions options = new PingOptions ();

            // Use the default Ttl value which is 128,
            // but change the fragmentation behavior.
            options.DontFragment = true;

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);
            int timeout = 120;
            PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine ("Address: {0}", reply.Address.ToString ());
                Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
                Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
                Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
                Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
            }
        }
    }
}
open System.Net.NetworkInformation
open System.Text

// args[0] can be an IPaddress or host name.
[<EntryPoint>]
let main args =
    let pingSender = new Ping()

    // Use the default Ttl value which is 128,
    // but change the fragmentation behavior.
    let options = PingOptions()
    options.DontFragment <- true

    // Create a buffer of 32 bytes of data to be transmitted.
    let data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    let buffer = Encoding.ASCII.GetBytes data
    let timeout = 120
    let reply: PingReply = pingSender.Send(args.[0], timeout, buffer, options)

    match reply.Status with
    | IPStatus.Success ->
        printfn "Address: %O" reply.Address
        printfn "RoundTrip time: %d" reply.RoundtripTime
        printfn "Time to live: %d" reply.Options.Ttl
        printfn "Don't fragment: %b" reply.Options.DontFragment
        printfn "Buffer size: %d" reply.Buffer.Length
        0
    | _ ->
        eprintfn "Error sending ping: %O" reply
        eprintfn "Error was: %O" reply.Status
        1

注釈

クラスは Ping 、インターネット制御メッセージ プロトコル (ICMP) エコー要求をリモート コンピューターに送信し、ICMP エコー応答メッセージを介してコンピューターから情報を受信しようとします。 クラスは Ping 、 クラスのインスタンスを PingReply 使用して、その状態や要求の送信と応答の受信にかかった時間など、操作に関する情報を返します。

メソッドは Send 、 クラスのインスタンスを PingReply 直接返します。 メソッドはSendAsync、 メソッドPingCompletedEventArgsの パラメーターで をPingCompletedEventHandlerPingReplyします。 は PingReply 、 プロパティを Reply 介してアクセスされます。

の値Statusが でないSuccess場合は、 プロパティまたは Buffer プロパティによって返される値をRoundtripTimeOptions使用しないでください。 プロパティは RoundtripTime 0 を返し Buffer 、プロパティは空の配列を返し、プロパティは を Optionsnullします。

プロパティ

Address

ICMP (インターネット制御メッセージ プロトコル) エコー応答を送信するホストのアドレスを取得します。

Buffer

ICMP (インターネット制御メッセージ プロトコル) エコー応答メッセージで受信したデータのバッファーを取得します。

Options

ICMP (インターネット制御メッセージ プロトコル) エコー要求に応答を送信するために使用するオプションを取得します。

RoundtripTime

インターネット制御メッセージ プロトコル (ICMP) エコー要求を送信して、対応する ICMP エコー応答メッセージを受信するまでにかかった時間をミリ秒単位で取得します。

Status

ICMP (インターネット制御メッセージ プロトコル) エコー要求の送信と、対応する ICMP エコー応答メッセージの受信の処理のステータスを取得します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象