PingReply.Buffer Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den in einer ICMP (Internet Control Message Protocol)-Echoantwortmeldung empfangenen Datenpuffer ab.
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()
Eigenschaftswert
Ein Byte-Array mit den in einer ICMP-Echoantwortmeldung empfangenen Daten, oder ein leeres Array, wenn keine Antwort empfangen wurde.
Beispiele
Das folgende Codebeispiel sendet synchron eine ICMP-Echoanforderung und zeigt die Größe des Puffers an, der von dieser Eigenschaft zurückgegeben wird.
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);
}
}
Hinweise
Der mit der ICMP-Echoanforderung gesendete Datenpuffer wird in der Echoantwort an den Absender zurückgegeben, damit die Roundtrip-Reisezeit für ein Paket einer bekannten Größe berechnet werden kann. Der Datenpuffer kann in Kombination mit der DontFragment Option verwendet werden, um die maximale Übertragungseinheit für den Netzwerkpfad zwischen quell- und zielcomputern zu ermitteln. Weitere Informationen finden Sie unter "Traceroute" in RFC 1574, Abschnitt 3.2, verfügbar unter https://www.ietf.org.
Der Standardpuffer, der mit Send und verwendet wird, SendAsync enthält 32 Byte an Daten.