Aracılığıyla paylaş


PingReply.Buffer Özellik

Tanım

İnternet Denetim İletisi Protokolü (ICMP) yankı yanıt iletisinde alınan verilerin arabelleği alır.

public:
 property cli::array <System::Byte> ^ Buffer { cli::array <System::Byte> ^ get(); };
public byte[] Buffer { get; }
member this.Buffer : byte[]
Public ReadOnly Property Buffer As Byte()

Özellik Değeri

Byte[]

ICMP Byte yankı yanıt iletisinde alınan verileri içeren bir dizi veya yanıt alınmadıysa boş bir dizi.

Örnekler

Aşağıdaki kod örneği zaman uyumlu olarak bir ICMP yankı isteği gönderir ve bu özellik tarafından döndürülen arabelleğin boyutunu görüntüler.

void ComplexPing()
{
   Ping ^ pingSender = gcnew Ping;
   
   // Create a buffer of 32 bytes of data to be transmitted.
   String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   array<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 = gcnew PingOptions( 64,true );
   
   // Send the request.
   PingReply ^ reply = pingSender->Send( "www.contoso.com", 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 );
   }
   else
   {
      Console::WriteLine( reply->Status );
   }
}
public static void ComplexPing ()
{
    Ping pingSender = new Ping ();

    // 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 request.
    PingReply reply = pingSender.Send ("www.contoso.com", 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);
    }
    else
    {
        Console.WriteLine (reply.Status);
    }
}

Açıklamalar

ICMP yankı isteğiyle gönderilen veri arabelleği, yankı yanıtında gönderene döndürülür, böylece bilinen boyutta bir paket için gidiş dönüş seyahat süresi hesaplanabilir. Veri arabelleği seçeneğiyle birlikte DontFragment kaynak ve hedef bilgisayarlar arasındaki ağ yolu için en yüksek iletim birimini bulmak için kullanılabilir. Daha fazla bilgi için rfc 1574, Bölüm 3.2'de bulunan "Traceroute" bölümüne bakın https://www.ietf.org.

ve ile SendSendAsync kullanılan varsayılan arabellek 32 bayt veri içerir.

Şunlara uygulanır