PingReply.Buffer Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene il buffer dei dati ricevuti in un messaggio di risposta echo del protocollo ICMP.
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()
Valore della proprietà
Matrice Byte contenente i dati ricevuti in un messaggio di risposta echo del protocollo ICMP, oppure matrice vuota nel caso in cui non sia stato ricevuto alcun messaggio.
Esempio
L'esempio di codice seguente invia una richiesta echo ICMP in modo sincrono e visualizza le dimensioni del buffer restituito da questa proprietà.
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);
}
}
Commenti
Il buffer di dati inviato con la richiesta echo ICMP viene restituito al mittente nella risposta echo in modo che sia possibile calcolare il tempo di viaggio per un pacchetto di dimensioni note. Il buffer dei dati, combinato con l'opzione, può essere usato per individuare l'unità DontFragment di trasmissione massima per il percorso di rete tra i computer di origine e di destinazione. Per altre informazioni, vedere "Traceroute" in RFC 1574, sezione 3.2, disponibile all'indirizzo https://www.ietf.org.
Il buffer predefinito usato con Send e SendAsync contiene 32 byte di dati.