Ping.Send Metodo
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.
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) a un computer remoto e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo.
Overload
Send(String, TimeSpan, Byte[], PingOptions) |
Tenta di inviare un messaggio echo ICMP (Internet Control Message Protocol) al computer specificato e di ricevere un messaggio di risposta echo ICMP corrispondente da tale computer. |
Send(String, Int32, Byte[], PingOptions) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo. Questo overload consente di specificare un valore di timeout per l'operazione e di controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto ICMP. |
Send(IPAddress, TimeSpan, Byte[], PingOptions) |
Tenta di inviare un messaggio echo ICMP (Internet Control Message Protocol) al computer con l'oggetto specificato IPAddresse di ricevere un messaggio di risposta echo ICMP corrispondente da tale computer. |
Send(IPAddress, Int32, Byte[], PingOptions) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer. Questo overload consente di specificare un valore di timeout per l'operazione e di controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto del messaggio echo ICMP. |
Send(String, Int32, Byte[]) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo. Questo overload consente di specificare un valore di timeout per l'operazione. |
Send(IPAddress, Int32, Byte[]) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer. Questo overload consente di specificare un valore di timeout per l'operazione. |
Send(String, Int32) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo. Questo metodo consente di specificare un valore di timeout per l'operazione. |
Send(IPAddress, Int32) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer. Questo metodo consente di specificare un valore di timeout per l'operazione. |
Send(String) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo. |
Send(IPAddress) |
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) a un computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer. |
Commenti
L'indirizzo IP restituito da uno qualsiasi degli Send overload può provenire da un computer remoto dannoso. Non connettersi al computer remoto utilizzando questa opzione. Usare DNS per determinare l'indirizzo IP del computer a cui connettersi.
Send(String, TimeSpan, Byte[], PingOptions)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Tenta di inviare un messaggio echo ICMP (Internet Control Message Protocol) al computer specificato e di ricevere un messaggio di risposta echo ICMP corrispondente da tale computer.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, TimeSpan timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, TimeSpan timeout, byte[]? buffer, System.Net.NetworkInformation.PingOptions? options);
member this.Send : string * TimeSpan * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As TimeSpan, buffer As Byte(), options As PingOptions) As PingReply
Parametri
- hostNameOrAddress
- String
Oggetto String che identifica il computer di destinazione del messaggio echo ICMP. Il valore specificato per il parametro può essere un nome host o una rappresentazione in forma di stringa di un indirizzo IP.
- timeout
- TimeSpan
Valore che specifica la quantità massima di tempo (dopo l'invio del messaggio echo) per attendere il messaggio di risposta echo ICMP.
- buffer
- Byte[]
Matrice Byte contenente i dati da inviare con il messaggio echo ICMP e restituiti nel messaggio di risposta echo ICMP. La matrice non può contenere più di 65.500 byte.
- options
- PingOptions
Oggetto PingOptions utilizzato per controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto del messaggio echo ICMP.
Restituisce
Informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno o sul motivo dell'errore, se non è stato ricevuto alcun messaggio.
Eccezioni
buffer
o hostNameOrAddress
è o hostNameOrAddress
è null
una stringa vuota ("").
timeout
rappresenta un tempo minore di zero millisecondi o maggiore di MaxValue millisecondi.
Le buffer
dimensioni della classe sono maggiori di 65.500 byte.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
Si applica a
Send(String, Int32, Byte[], PingOptions)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo. Questo overload consente di specificare un valore di timeout per l'operazione e di controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto ICMP.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : string * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply
Parametri
- hostNameOrAddress
- String
Oggetto String che identifica il computer di destinazione del messaggio echo ICMP. Il valore specificato per il parametro può essere un nome host o una rappresentazione in forma di stringa di un indirizzo IP.
- timeout
- Int32
Valore Int32 che specifica il numero massimo di millisecondi durante i quali attendere il messaggio di risposta echo ICMP dopo l'invio del messaggio echo.
- buffer
- Byte[]
Matrice Byte contenente i dati da inviare con il messaggio echo ICMP e restituiti nel messaggio di risposta echo ICMP. La matrice non può contenere più di 65.500 byte.
- options
- PingOptions
Oggetto PingOptions utilizzato per controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto del messaggio echo ICMP.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario.
Eccezioni
Le dimensioni di buffer
superano i 65.500 byte.
hostNameOrAddress
è null
o una stringa di lunghezza zero.
-oppure-
buffer
è null
.
timeout
è minore di zero.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
.NET 7 e versioni successive solo in Linux: il processo non è con privilegi e buffer
non è vuoto.
Esempio
Nell'esempio di codice seguente viene illustrato come chiamare questo metodo.
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
Se il messaggio di risposta echo ICMP non viene ricevuto entro il tempo specificato dal timeout
parametro , l'eco ICMP ha esito negativo e la Status proprietà è impostata su TimedOut.
Nota
Quando si specificano numeri molto piccoli per timeout
, la risposta Ping può essere ricevuta anche se timeout
sono trascorsi millisecondi.
Se la DontFragment proprietà è true
e le dimensioni totali del pacchetto superano le dimensioni massime del pacchetto che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig.
Utilizzare la Ttl proprietà per specificare il numero massimo di volte in cui il messaggio echo ICMP può essere inoltrato prima di raggiungere la destinazione. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene eliminato e la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su TtlExpired.
Si applica a
Send(IPAddress, TimeSpan, Byte[], PingOptions)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Tenta di inviare un messaggio echo ICMP (Internet Control Message Protocol) al computer con l'oggetto specificato IPAddresse di ricevere un messaggio di risposta echo ICMP corrispondente da tale computer.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, TimeSpan timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, TimeSpan timeout, byte[]? buffer, System.Net.NetworkInformation.PingOptions? options);
member this.Send : System.Net.IPAddress * TimeSpan * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As TimeSpan, buffer As Byte(), options As PingOptions) As PingReply
Parametri
- address
- IPAddress
Oggetto IPAddress che identifica il computer di destinazione del messaggio echo ICMP.
- timeout
- TimeSpan
Valore che specifica la quantità massima di tempo (dopo l'invio del messaggio echo) per attendere il messaggio di risposta echo ICMP.
- buffer
- Byte[]
Matrice Byte contenente i dati da inviare con il messaggio echo ICMP e restituiti nel messaggio di risposta echo ICMP. La matrice non può contenere più di 65.500 byte.
- options
- PingOptions
Oggetto PingOptions utilizzato per controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto del messaggio echo ICMP.
Restituisce
Informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno o sul motivo dell'errore, se non è stato ricevuto alcun messaggio.
Eccezioni
address
o buffer
è null
.
timeout
rappresenta un tempo minore di zero millisecondi o maggiore di MaxValue millisecondi.
Le buffer
dimensioni della classe sono maggiori di 65.500 byte.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
Si applica a
Send(IPAddress, Int32, Byte[], PingOptions)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer. Questo overload consente di specificare un valore di timeout per l'operazione e di controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto del messaggio echo ICMP.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : System.Net.IPAddress * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply
Parametri
- address
- IPAddress
Oggetto IPAddress che identifica il computer di destinazione del messaggio echo ICMP.
- timeout
- Int32
Valore Int32 che specifica il numero massimo di millisecondi durante i quali attendere il messaggio di risposta echo ICMP dopo l'invio del messaggio echo.
- buffer
- Byte[]
Matrice Byte contenente i dati da inviare con il messaggio echo ICMP e restituiti nel messaggio di risposta echo ICMP. La matrice non può contenere più di 65.500 byte.
- options
- PingOptions
Oggetto PingOptions utilizzato per controllare la frammentazione e i valori TTL (Time-to-Live) per il pacchetto del messaggio echo ICMP.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario. Il metodo restituisce il valore PacketTooBig se il pacchetto supera l'unità di trasmissione massima (MTU, Maximum Transmission Unit).
Eccezioni
Le dimensioni di buffer
superano i 65.500 byte.
address
o buffer
è null
.
timeout
è minore di zero.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
.NET 7 e versioni successive solo in Linux: il processo non è con privilegi e buffer
non è vuoto.
Esempio
Nell'esempio di codice seguente viene illustrato come chiamare questo metodo.
void ComplexLocalPing()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
IPAddress^ address = IPAddress::Loopback;
// 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 );
PingReply ^ reply = pingSender->Send( address, 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 ComplexLocalPing ()
{
// Ping's the local machine.
Ping pingSender = new Ping ();
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);
PingReply reply = pingSender.Send (address, 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
Se il messaggio di risposta echo ICMP non viene ricevuto entro il tempo specificato dal timeout
parametro, l'echo ICMP ha esito negativo e la Status proprietà è impostata su TimedOut.
Nota
Quando si specificano numeri molto piccoli per timeout
, la risposta Ping può essere ricevuta anche se timeout
sono trascorsi millisecondi.
Se la DontFragment proprietà è true
e le dimensioni totali dei pacchetti superano le dimensioni massime dei pacchetti che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig.
Utilizzare la Ttl proprietà per specificare il numero massimo di volte in cui è possibile inoltrare il messaggio echo ICMP prima di raggiungere la destinazione. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene rimosso e la richiesta echo ICMP non riesce. In questo caso, l'oggetto Status è impostato su TtlExpired.
Si applica a
Send(String, Int32, Byte[])
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo. Questo overload consente di specificare un valore di timeout per l'operazione.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout, byte[] buffer);
member this.Send : string * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte()) As PingReply
Parametri
- hostNameOrAddress
- String
Oggetto String che identifica il computer di destinazione del messaggio echo ICMP. Il valore specificato per il parametro può essere un nome host o una rappresentazione in forma di stringa di un indirizzo IP.
- timeout
- Int32
Valore Int32 che specifica il numero massimo di millisecondi durante i quali attendere il messaggio di risposta echo ICMP dopo l'invio del messaggio echo.
- buffer
- Byte[]
Matrice Byte contenente i dati da inviare con il messaggio echo ICMP e restituiti nel messaggio di risposta echo ICMP. La matrice non può contenere più di 65.500 byte.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario.
Eccezioni
Le dimensioni di buffer
superano i 65.500 byte.
timeout
è minore di zero.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
.NET 7 e versioni successive solo in Linux: il processo non è con privilegi e buffer
non è vuoto.
Esempio
Per un esempio che illustra come chiamare un Send overload, vedere panoramica della Ping classe.
Commenti
Se il messaggio di risposta echo ICMP non viene ricevuto entro il tempo specificato nel timeout
parametro, l'echo ICMP ha esito negativo e la Status proprietà è impostata su TimedOut.
Nota
Quando si specificano numeri molto piccoli per timeout
, la risposta Ping può essere ricevuta anche se timeout
sono trascorsi millisecondi.
Questo overload usa le impostazioni predefinite per la frammentazione dei pacchetti e l'inoltro dei pacchetti. Il pacchetto contenente il messaggio echo ICMP può essere frammentato in transito se la dimensione totale dei pacchetti supera le dimensioni massime dei pacchetti che possono essere trasmessi da uno dei nodi di routing tra i computer locali e remoti. Per evitare la frammentazione, usare uno dei Send metodi che accetta un options
parametro e impostare la DontFragment proprietà su true
. Quando DontFragment è true
e la dimensione totale del pacchetto supera le dimensioni massime dei pacchetti che possono essere trasmessi da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig.
I frammenti di pacchetti o pacchetti possono essere inoltrati tramite il routing dei nodi 128 volte prima di essere ignorati. Per modificare questa impostazione, usare un overload che accetta un Sendoptions
parametro e impostare la proprietà sul Ttl valore desiderato. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene rimosso e la richiesta echo ICMP non riesce. In questo caso, l'oggetto Status è impostato su TtlExpired.
Si applica a
Send(IPAddress, Int32, Byte[])
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer. Questo overload consente di specificare un valore di timeout per l'operazione.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout, byte[] buffer);
member this.Send : System.Net.IPAddress * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte()) As PingReply
Parametri
- address
- IPAddress
Oggetto IPAddress che identifica il computer di destinazione del messaggio echo ICMP.
- timeout
- Int32
Valore Int32 che specifica il numero massimo di millisecondi durante i quali attendere il messaggio di risposta echo ICMP dopo l'invio del messaggio echo.
- buffer
- Byte[]
Matrice Byte contenente i dati da inviare con il messaggio echo ICMP e restituiti nel messaggio di risposta echo ICMP. La matrice non può contenere più di 65.500 byte.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario. Il metodo restituisce il valore PacketTooBig se il pacchetto supera l'unità di trasmissione massima (MTU, Maximum Transmission Unit).
Eccezioni
Le dimensioni di buffer
superano i 65.500 byte.
address
o buffer
è null
.
timeout
è minore di zero.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
.NET 7 e versioni successive solo in Linux: il processo non è con privilegi e buffer
non è vuoto.
Esempio
Nell'esempio di codice seguente viene illustrato come chiamare questo metodo.
void LocalPingTimeout()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
IPAddress^ address = IPAddress::Loopback;
// 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;
PingReply ^ reply = pingSender->Send( address, timeout, buffer);
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 LocalPingTimeout ()
{
// Ping's the local machine.
Ping pingSender = new Ping ();
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;
PingReply reply = pingSender.Send (address, timeout, buffer);
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
Se il messaggio di risposta echo ICMP non viene ricevuto entro il tempo specificato nel timeout
parametro, l'echo ICMP ha esito negativo e la Status proprietà è impostata su TimedOut.
Nota
Quando si specificano numeri molto piccoli per timeout
, la risposta Ping può essere ricevuta anche se timeout
sono trascorsi millisecondi.
Questo overload usa le impostazioni predefinite per la frammentazione dei pacchetti e l'inoltro dei pacchetti. Il pacchetto contenente il messaggio echo ICMP può essere frammentato in transito se la dimensione totale dei pacchetti supera le dimensioni massime dei pacchetti che possono essere trasmessi da uno dei nodi di routing tra i computer locali e remoti. Per evitare la frammentazione, usare uno dei Send metodi che accetta un options
parametro e impostare la DontFragment proprietà su true
. Quando DontFragment è true
e la dimensione totale del pacchetto supera le dimensioni massime dei pacchetti che possono essere trasmessi da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig.
I frammenti di pacchetti o pacchetti possono essere inoltrati tramite il routing dei nodi 128 volte prima di essere ignorati. Per modificare questa impostazione, usare un overload che accetta un Sendoptions
parametro e impostare la proprietà sul Ttl valore desiderato. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene rimosso e la richiesta echo ICMP non riesce. In questo caso, l'oggetto Status è impostato su TtlExpired.
Si applica a
Send(String, Int32)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo. Questo metodo consente di specificare un valore di timeout per l'operazione.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout);
member this.Send : string * int -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer) As PingReply
Parametri
- hostNameOrAddress
- String
Oggetto String che identifica il computer di destinazione del messaggio echo ICMP. Il valore specificato per il parametro può essere un nome host o una rappresentazione in forma di stringa di un indirizzo IP.
- timeout
- Int32
Valore Int32 che specifica il numero massimo di millisecondi durante i quali attendere il messaggio di risposta echo ICMP dopo l'invio del messaggio echo.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario.
Eccezioni
hostNameOrAddress
è null
o è una stringa vuota ("").
timeout
è minore di zero.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
Esempio
Per un esempio che illustra la chiamata di un Send metodo, vedere la panoramica della Ping classe.
Commenti
Se il messaggio di risposta echo ICMP non viene ricevuto entro il tempo specificato nel timeout
parametro, l'echo ICMP ha esito negativo e la Status proprietà è impostata su TimedOut.
Nota
Quando si specificano numeri molto piccoli per timeout
, la risposta Ping può essere ricevuta anche se timeout
sono trascorsi millisecondi.
Questo overload usa le impostazioni predefinite per la frammentazione dei pacchetti e l'inoltro dei pacchetti. Il pacchetto contenente il messaggio echo ICMP può essere frammentato in transito se la dimensione totale dei pacchetti supera le dimensioni massime dei pacchetti che possono essere trasmessi da uno dei nodi di routing tra i computer locali e remoti. Per evitare la frammentazione, usare uno dei Send metodi che accetta un options
parametro e impostare la DontFragment proprietà su true
. Quando DontFragment è true
e la dimensione totale del pacchetto supera le dimensioni massime dei pacchetti che possono essere trasmessi da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig. I frammenti di pacchetti o pacchetti (se frammentati) possono essere inoltrati tramite il routing dei nodi 128 volte prima di essere ignorati. Per modificare questa impostazione, usare un overload che accetta un Sendoptions
parametro e impostare la proprietà sul Ttl valore desiderato. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene eliminato e la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su TtlExpired.
Si applica a
Send(IPAddress, Int32)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) con il buffer di dati specificato al computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer. Questo metodo consente di specificare un valore di timeout per l'operazione.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout);
member this.Send : System.Net.IPAddress * int -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer) As PingReply
Parametri
- address
- IPAddress
Oggetto IPAddress che identifica il computer di destinazione del messaggio echo ICMP.
- timeout
- Int32
Valore Int32 che specifica il numero massimo di millisecondi durante i quali attendere il messaggio di risposta echo ICMP dopo l'invio del messaggio echo.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario.
Eccezioni
address
è null
.
timeout
è minore di zero.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
Esempio
Per un esempio che illustra la chiamata di un Send metodo, vedere la panoramica della Ping classe.
Commenti
Se il messaggio di risposta echo ICMP non viene ricevuto entro il tempo specificato nel timeout
parametro , l'eco ICMP ha esito negativo e la Status proprietà è impostata su TimedOut.
Nota
Quando si specificano numeri molto piccoli per timeout
, la risposta Ping può essere ricevuta anche se timeout
sono trascorsi millisecondi.
Questo overload usa le impostazioni predefinite per la frammentazione dei pacchetti e l'inoltro di pacchetti. Il pacchetto che contiene il messaggio echo ICMP può essere frammentato in transito se le dimensioni totali del pacchetto superano le dimensioni massime del pacchetto che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti. Per evitare la frammentazione, usare uno dei Send metodi che accettano un options
parametro e impostare la DontFragment proprietà su true
. Quando DontFragment è true
e le dimensioni totali del pacchetto superano le dimensioni massime del pacchetto che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig.
I frammenti di pacchetti o pacchetti possono essere inoltrati tramite il routing dei nodi 128 volte prima di essere eliminati. Per modificare questa impostazione, usare un overload che accetta un Sendoptions
parametro e impostare la Ttl proprietà sul valore desiderato. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene eliminato e la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su TtlExpired.
Si applica a
Send(String)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) al computer remoto specificato e riceve il messaggio di risposta echo ICMP corrispondente da quest'ultimo.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress);
member this.Send : string -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String) As PingReply
Parametri
- hostNameOrAddress
- String
Oggetto String che identifica il computer di destinazione del messaggio echo ICMP. Il valore specificato per il parametro può essere un nome host o una rappresentazione in forma di stringa di un indirizzo IP.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario.
Eccezioni
hostNameOrAddress
è null
o è una stringa vuota ("").
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
Esempio
Nell'esempio di codice seguente viene illustrata la chiamata a questo metodo.
void SimplePing()
{
Ping ^ pingSender = gcnew Ping;
PingReply ^ reply = pingSender->Send( "www.contoso.com" );
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 SimplePing ()
{
Ping pingSender = new Ping ();
PingReply reply = pingSender.Send ("www.contoso.com");
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
Questo metodo invia un buffer di dati 32 Byte con il messaggio echo ICMP. Il metodo attende cinque secondi per un messaggio di risposta echo ICMP. Se non riceve una risposta in quel momento, il metodo restituisce e la Status proprietà è impostata su TimedOut.
Questo overload usa le impostazioni predefinite per la frammentazione dei pacchetti e l'inoltro di pacchetti. Il pacchetto che contiene il messaggio echo ICMP può essere frammentato in transito se le dimensioni totali del pacchetto superano le dimensioni massime del pacchetto che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti. Per evitare la frammentazione, usare uno dei Send metodi che accettano un options
parametro e impostare la DontFragment proprietà su true
. Quando DontFragment è true
e le dimensioni totali del pacchetto superano le dimensioni massime del pacchetto che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig. I frammenti di pacchetti o pacchetti (se frammentati) possono essere inoltrati dai nodi di routing 128 volte prima di essere eliminati. Per modificare questa impostazione, usare un overload che accetta un Sendoptions
parametro e impostare la Ttl proprietà sul valore desiderato. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene eliminato e la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su TtlExpired.
Si applica a
Send(IPAddress)
- Origine:
- Ping.cs
- Origine:
- Ping.cs
- Origine:
- Ping.cs
Esegue un tentativo di invio di un messaggio echo ICMP (Internet Control Message Protocol) a un computer con il IPAddress specificato e riceve il messaggio di risposta echo ICMP corrispondente da quel computer.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address);
member this.Send : System.Net.IPAddress -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress) As PingReply
Parametri
- address
- IPAddress
Oggetto IPAddress che identifica il computer di destinazione del messaggio echo ICMP.
Restituisce
Oggetto PingReply che fornisce informazioni sul messaggio di risposta echo ICMP, se ne è stato ricevuto uno, o descrive il motivo dell'esito negativo in caso contrario.
Eccezioni
address
è null
.
È in corso una chiamata a SendAsync.
È stata generata un'eccezione durante l'invio o la ricezione di messaggi ICMP. Per conoscere l'eccezione esatta generata, vedere l'eccezione interna.
L'oggetto è stato eliminato.
Esempio
Nell'esempio di codice seguente viene illustrata la chiamata a questo metodo.
void LocalPing()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
IPAddress^ address = IPAddress::Loopback;
PingReply ^ reply = pingSender->Send( address );
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 LocalPing ()
{
// Ping's the local machine.
Ping pingSender = new Ping ();
IPAddress address = IPAddress.Loopback;
PingReply reply = pingSender.Send (address);
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
Questo metodo invia all'host specificato da address
un buffer di dati 32 Byte con il messaggio echo ICMP. Il metodo attende cinque secondi per un messaggio di risposta echo ICMP. Se non riceve una risposta in quel momento, il metodo restituisce e la Status proprietà è impostata su TimedOut.
Questo overload usa le impostazioni predefinite per la frammentazione dei pacchetti e l'inoltro di pacchetti. Il pacchetto che contiene il messaggio echo ICMP può essere frammentato in transito se le dimensioni totali del pacchetto superano le dimensioni massime del pacchetto che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti. Per evitare la frammentazione, usare uno dei Send metodi che accettano un options
parametro e impostare la DontFragment proprietà su true
. Quando DontFragment è true
e le dimensioni totali del pacchetto superano le dimensioni massime del pacchetto che possono essere trasmesse da uno dei nodi di routing tra i computer locali e remoti, la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su PacketTooBig. I frammenti di pacchetti o pacchetti (se frammentati) possono essere inoltrati dai nodi di routing 128 volte prima di essere eliminati. Per modificare questa impostazione, usare un overload che accetta un Sendoptions
parametro e impostare la Ttl proprietà sul valore desiderato. Se il pacchetto non raggiunge la destinazione dopo l'inoltro del numero specificato di volte, il pacchetto viene eliminato e la richiesta echo ICMP ha esito negativo. In questo caso, l'oggetto Status è impostato su TtlExpired.