Ping.Send Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Tentativas de enviar uma mensagem de eco do protocolo ICMP a um computador remoto e receber uma mensagem de resposta de eco ICMP correspondente do computador remoto.
Sobrecargas
Send(String, TimeSpan, Byte[], PingOptions) |
Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle da Internet) para o computador especificado e receber uma mensagem de resposta de eco ICMP correspondente desse computador. |
Send(String, Int32, Byte[], PingOptions) |
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e a fragmentação de controle e valores de vida útil do pacote ICMP. |
Send(IPAddress, TimeSpan, Byte[], PingOptions) |
Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador que tem o especificado IPAddresse receber uma mensagem de resposta de eco ICMP correspondente desse computador. |
Send(IPAddress, Int32, Byte[], PingOptions) |
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco de ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e controle valores de fragmentação e vida útil para o pacote de mensagem de eco de ICMP. |
Send(String, Int32, Byte[]) |
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação. |
Send(IPAddress, Int32, Byte[]) |
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação. |
Send(String, Int32) |
Tenta enviar uma mensagem de eco do protocolo ICMP para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Esse método permite que você especifique um valor de tempo limite para a operação. |
Send(IPAddress, Int32) |
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Esse método permite que você especifique um valor de tempo limite para a operação. |
Send(String) |
Tenta enviar uma mensagem de eco do protocolo ICMP para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. |
Send(IPAddress) |
Tenta enviar uma mensagem de eco do protocolo ICMP para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco do ICMP correspondente desse computador. |
Comentários
O endereço IP retornado por qualquer uma das Send sobrecargas pode ser originado de um computador remoto mal-intencionado. Não se conecte ao computador remoto usando isso. Use o DNS para determinar o endereço IP do computador ao qual você deseja se conectar.
Send(String, TimeSpan, Byte[], PingOptions)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle da Internet) para o computador especificado e receber uma mensagem de resposta de eco ICMP correspondente desse computador.
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
Parâmetros
- hostNameOrAddress
- String
Um String que identifica o computador de destino para a mensagem de eco do ICMP. O valor especificado para esse parâmetro pode ser um nome do host ou uma representação de cadeia de caracteres de um endereço IP.
- timeout
- TimeSpan
Um valor que especifica a quantidade máxima de tempo (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.
- buffer
- Byte[]
Uma matriz Byte que contém dados a serem enviados com a mensagem de eco de ICMP e retornados na mensagem de resposta de eco de ICMP. A matriz não pode conter mais de 65.500 bytes.
- options
- PingOptions
Um objeto PingOptions usado para controlar a fragmentação e valores de vida útil para o pacote de mensagens de eco ICMP.
Retornos
Informações sobre a mensagem de resposta de eco ICMP, se uma foi recebida ou o motivo da falha, se nenhuma mensagem foi recebida.
Exceções
buffer
ou hostNameOrAddress
é null
ou hostNameOrAddress
é uma cadeia de caracteres vazia ("").
timeout
representa um tempo menor que zero milissegundos ou maior que MaxValue milissegundos.
O buffer
tamanho do é maior que 65.500 bytes.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
Aplica-se a
Send(String, Int32, Byte[], PingOptions)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e a fragmentação de controle e valores de vida útil do pacote 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
Parâmetros
- hostNameOrAddress
- String
Um String que identifica o computador de destino para a mensagem de eco do ICMP. O valor especificado para esse parâmetro pode ser um nome do host ou uma representação de cadeia de caracteres de um endereço IP.
- timeout
- Int32
Um valor Int32 que especifica o número máximo de milissegundos (após o envio da mensagem de eco) de espera pela mensagem de resposta de eco de ICMP.
- buffer
- Byte[]
Uma matriz Byte que contém dados a serem enviados com a mensagem de eco de ICMP e retornados na mensagem de resposta de eco de ICMP. A matriz não pode conter mais de 65.500 bytes.
- options
- PingOptions
Um objeto PingOptions usado para controlar a fragmentação e valores de vida útil para o pacote de mensagens de eco ICMP.
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem foi recebida ou fornece o motivo da falha, se nenhuma mensagem foi recebida.
Exceções
O tamanho do buffer
excede 65.500 bytes.
hostNameOrAddress
é null
uma cadeia de comprimento zero.
- ou -
buffer
é null
.
timeout
é menor que zero.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
.NET 7 e versões posteriores somente no Linux: o processo não tem privilégios e buffer
não está vazio.
Exemplos
O exemplo de código a seguir demonstra como chamar esse método.
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);
}
}
Comentários
Se a mensagem de resposta de eco ICMP não for recebida dentro do tempo especificado pelo timeout
parâmetro , o eco ICMP falhará e a Status propriedade será definida como TimedOut.
Observação
Ao especificar números muito pequenos para timeout
, a resposta ping pode ser recebida mesmo se timeout
milissegundos tiverem decorrido.
Se a DontFragment propriedade for true
e o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido como PacketTooBig.
Use a Ttl propriedade para especificar o número máximo de vezes que a mensagem de eco ICMP pode ser encaminhada antes de chegar ao seu destino. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido como TtlExpired.
Aplica-se a
Send(IPAddress, TimeSpan, Byte[], PingOptions)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador que tem o especificado IPAddresse receber uma mensagem de resposta de eco ICMP correspondente desse computador.
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
Parâmetros
- timeout
- TimeSpan
Um valor que especifica a quantidade máxima de tempo (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.
- buffer
- Byte[]
Uma matriz Byte que contém dados a serem enviados com a mensagem de eco de ICMP e retornados na mensagem de resposta de eco de ICMP. A matriz não pode conter mais de 65.500 bytes.
- options
- PingOptions
Um objeto PingOptions usado para controlar a fragmentação e valores de vida útil para o pacote de mensagens de eco ICMP.
Retornos
Informações sobre a mensagem de resposta de eco ICMP, se uma foi recebida ou o motivo da falha, se nenhuma mensagem foi recebida.
Exceções
address
ou buffer
é null
.
timeout
representa um tempo menor que zero milissegundos ou maior que MaxValue milissegundos.
O buffer
tamanho do é maior que 65.500 bytes.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
Aplica-se a
Send(IPAddress, Int32, Byte[], PingOptions)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco de ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e controle valores de fragmentação e vida útil para o pacote de mensagem de eco de 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
Parâmetros
- timeout
- Int32
Um valor Int32 que especifica o número máximo de milissegundos (após o envio da mensagem de eco) de espera pela mensagem de resposta de eco de ICMP.
- buffer
- Byte[]
Uma matriz Byte que contém dados a serem enviados com a mensagem de eco de ICMP e retornados na mensagem de resposta de eco de ICMP. A matriz não pode conter mais de 65.500 bytes.
- options
- PingOptions
Um objeto PingOptions usado para controlar a fragmentação e valores de vida útil para o pacote de mensagens de eco ICMP.
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem foi recebida, ou fornece o motivo da falha, se nenhuma mensagem foi recebida. O método retornará PacketTooBig se o pacote ultrapassar a MTU (Unidade Máxima de Transmissão) máxima.
Exceções
O tamanho do buffer
excede 65.500 bytes.
address
ou buffer
é null
.
timeout
é menor que zero.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
.NET 7 e versões posteriores somente no Linux: o processo não tem privilégios e buffer
não está vazio.
Exemplos
O exemplo de código a seguir demonstra como chamar esse método.
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);
}
}
Comentários
Se a mensagem de resposta de eco ICMP não for recebida dentro do tempo especificado pelo timeout
parâmetro , o eco ICMP falhará e a Status propriedade será definida TimedOutcomo .
Observação
Ao especificar números muito pequenos para timeout
, a resposta ping pode ser recebida mesmo se timeout
milissegundos tiverem decorrido.
Se a DontFragment propriedade for true
e o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido PacketTooBigcomo .
Use a Ttl propriedade para especificar o número máximo de vezes que a mensagem de eco ICMP pode ser encaminhada antes de chegar ao seu destino. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido TtlExpiredcomo .
Aplica-se a
Send(String, Int32, Byte[])
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.
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
Parâmetros
- hostNameOrAddress
- String
Um String que identifica o computador de destino para a mensagem de eco do ICMP. O valor especificado para esse parâmetro pode ser um nome do host ou uma representação de cadeia de caracteres de um endereço IP.
- timeout
- Int32
Um valor Int32 que especifica o número máximo de milissegundos (após o envio da mensagem de eco) de espera pela mensagem de resposta de eco de ICMP.
- buffer
- Byte[]
Uma matriz Byte que contém dados a serem enviados com a mensagem de eco de ICMP e retornados na mensagem de resposta de eco de ICMP. A matriz não pode conter mais de 65.500 bytes.
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem foi recebida ou fornece o motivo da falha, se nenhuma mensagem foi recebida.
Exceções
O tamanho do buffer
excede 65.500 bytes.
hostNameOrAddress
é null
ou é uma cadeia de caracteres vazia ("").
- ou -
buffer
é null
.
timeout
é menor que zero.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
.NET 7 e versões posteriores somente no Linux: o processo não tem privilégios e buffer
não está vazio.
Exemplos
Para obter um exemplo que demonstra como chamar uma Send sobrecarga, consulte a visão geral da Ping classe.
Comentários
Se a mensagem de resposta de eco ICMP não for recebida dentro do tempo especificado no timeout
parâmetro , o eco ICMP falhará e a Status propriedade será definida TimedOutcomo .
Observação
Ao especificar números muito pequenos para timeout
, a resposta ping pode ser recebida mesmo se timeout
milissegundos tiverem decorrido.
Essa sobrecarga usa as configurações padrão para fragmentação de pacotes e encaminhamento de pacotes. O pacote que contém a mensagem de eco ICMP poderá ser fragmentado em trânsito se o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos. Para evitar a fragmentação, use um dos Send métodos que usa um options
parâmetro e defina a DontFragment propriedade como true
. Quando DontFragment é true
e o tamanho total do pacote excede o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falha. Quando isso acontece, o Status é definido PacketTooBigcomo .
Os fragmentos de pacote ou pacote podem ser encaminhados roteando nós 128 vezes antes de serem descartados. Para alterar essa configuração, use uma Send sobrecarga que usa um options
parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido TtlExpiredcomo .
Aplica-se a
Send(IPAddress, Int32, Byte[])
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.
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
Parâmetros
- timeout
- Int32
Um valor Int32 que especifica o número máximo de milissegundos (após o envio da mensagem de eco) de espera pela mensagem de resposta de eco de ICMP.
- buffer
- Byte[]
Uma matriz Byte que contém dados a serem enviados com a mensagem de eco de ICMP e retornados na mensagem de resposta de eco de ICMP. A matriz não pode conter mais de 65.500 bytes.
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem foi recebida, ou fornece o motivo da falha, se nenhuma mensagem foi recebida. O método retornará PacketTooBig se o pacote ultrapassar a MTU (Unidade Máxima de Transmissão) máxima.
Exceções
O tamanho do buffer
excede 65.500 bytes.
address
ou buffer
é null
.
timeout
é menor que zero.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
.NET 7 e versões posteriores somente no Linux: o processo não tem privilégios e buffer
não está vazio.
Exemplos
O exemplo de código a seguir demonstra como chamar esse método.
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);
}
}
Comentários
Se a mensagem de resposta de eco ICMP não for recebida dentro do tempo especificado no timeout
parâmetro , o eco ICMP falhará e a Status propriedade será definida TimedOutcomo .
Observação
Ao especificar números muito pequenos para timeout
, a resposta ping pode ser recebida mesmo se timeout
milissegundos tiverem decorrido.
Essa sobrecarga usa as configurações padrão para fragmentação de pacotes e encaminhamento de pacotes. O pacote que contém a mensagem de eco ICMP poderá ser fragmentado em trânsito se o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos. Para evitar a fragmentação, use um dos Send métodos que usa um options
parâmetro e defina a DontFragment propriedade como true
. Quando DontFragment é true
e o tamanho total do pacote excede o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falha. Quando isso acontece, o Status é definido PacketTooBigcomo .
Os fragmentos de pacote ou pacote podem ser encaminhados roteando nós 128 vezes antes de serem descartados. Para alterar essa configuração, use uma Send sobrecarga que usa um options
parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido TtlExpiredcomo .
Aplica-se a
Send(String, Int32)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Esse método permite que você especifique um valor de tempo limite para a operação.
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
Parâmetros
- hostNameOrAddress
- String
Um String que identifica o computador de destino para a mensagem de eco do ICMP. O valor especificado para esse parâmetro pode ser um nome do host ou uma representação de cadeia de caracteres de um endereço IP.
- timeout
- Int32
Um valor Int32 que especifica o número máximo de milissegundos (após o envio da mensagem de eco) de espera pela mensagem de resposta de eco de ICMP.
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem foi recebida ou fornece o motivo da falha, se nenhuma mensagem foi recebida.
Exceções
hostNameOrAddress
é null
ou é uma cadeia de caracteres vazia ("").
timeout
é menor que zero.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
Exemplos
Para obter um exemplo que demonstra como chamar um Send método, consulte a visão geral da Ping classe.
Comentários
Se a mensagem de resposta de eco ICMP não for recebida dentro do tempo especificado no timeout
parâmetro , o eco ICMP falhará e a Status propriedade será definida TimedOutcomo .
Observação
Ao especificar números muito pequenos para timeout
, a resposta ping pode ser recebida mesmo se timeout
milissegundos tiverem decorrido.
Essa sobrecarga usa as configurações padrão para fragmentação de pacotes e encaminhamento de pacotes. O pacote que contém a mensagem de eco ICMP poderá ser fragmentado em trânsito se o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos. Para evitar a fragmentação, use um dos Send métodos que usa um options
parâmetro e defina a DontFragment propriedade como true
. Quando DontFragment é true
e o tamanho total do pacote excede o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falha. Quando isso acontece, o Status é definido PacketTooBigcomo . Os fragmentos de pacote ou pacote (se fragmentados) podem ser encaminhados por nós de roteamento 128 vezes antes de serem descartados. Para alterar essa configuração, use uma Send sobrecarga que usa um options
parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido como TtlExpired.
Aplica-se a
Send(IPAddress, Int32)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP com o buffer de dados especificado para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador. Esse método permite que você especifique um valor de tempo limite para a operação.
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
Parâmetros
- timeout
- Int32
Um valor Int32 que especifica o número máximo de milissegundos (após o envio da mensagem de eco) de espera pela mensagem de resposta de eco de ICMP.
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem foi recebida ou fornece o motivo da falha, se nenhuma mensagem foi recebida.
Exceções
address
é null
.
timeout
é menor que zero.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
Exemplos
Para obter um exemplo que demonstra a chamada de um Send método, consulte a visão geral da Ping classe.
Comentários
Se a mensagem de resposta de eco ICMP não for recebida dentro do tempo especificado no timeout
parâmetro , o eco ICMP falhará e a Status propriedade será definida como TimedOut.
Observação
Ao especificar números muito pequenos para timeout
, a resposta ping pode ser recebida mesmo se timeout
milissegundos tiverem decorrido.
Essa sobrecarga usa configurações padrão para fragmentação de pacotes e encaminhamento de pacotes. O pacote que contém a mensagem de eco ICMP poderá ser fragmentado em trânsito se o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos. Para evitar a fragmentação, use um dos Send métodos que usa um options
parâmetro e defina a DontFragment propriedade como true
. Quando DontFragment é true
e o tamanho total do pacote excede o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falha. Quando isso acontece, o Status é definido como PacketTooBig.
Os fragmentos de pacote ou pacote podem ser encaminhados por nós de roteamento 128 vezes antes de serem descartados. Para alterar essa configuração, use uma Send sobrecarga que usa um options
parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido como TtlExpired.
Aplica-se a
Send(String)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP para o computador especificado e receber uma mensagem de resposta de eco do ICMP correspondente do computador.
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
Parâmetros
- hostNameOrAddress
- String
Um String que identifica o computador de destino para a mensagem de eco do ICMP. O valor especificado para esse parâmetro pode ser um nome do host ou uma representação de cadeia de caracteres de um endereço IP.
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem foi recebida, ou fornece o motivo da falha, se nenhuma mensagem foi recebida.
Exceções
hostNameOrAddress
é null
ou é uma cadeia de caracteres vazia ("").
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
Exemplos
O exemplo de código a seguir demonstra a chamada desse método.
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);
}
}
Comentários
Esse método envia um buffer de dados 32 Byte com a mensagem de eco ICMP. O método aguarda cinco segundos por uma mensagem de resposta de eco ICMP. Se ele não receber uma resposta nesse tempo, o método retornará e a Status propriedade será definida como TimedOut.
Essa sobrecarga usa configurações padrão para fragmentação de pacotes e encaminhamento de pacotes. O pacote que contém a mensagem de eco ICMP poderá ser fragmentado em trânsito se o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos. Para evitar a fragmentação, use um dos Send métodos que usa um options
parâmetro e defina a DontFragment propriedade como true
. Quando DontFragment é true
e o tamanho total do pacote excede o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falha. Quando isso acontece, o Status é definido como PacketTooBig. Os fragmentos de pacote ou pacote (se fragmentados) podem ser encaminhados roteando nós 128 vezes antes de serem descartados. Para alterar essa configuração, use uma Send sobrecarga que usa um options
parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido como TtlExpired.
Aplica-se a
Send(IPAddress)
- Origem:
- Ping.cs
- Origem:
- Ping.cs
- Origem:
- Ping.cs
Tenta enviar uma mensagem de eco do protocolo ICMP para o computador que tem o IPAddress especificado e receber uma mensagem de resposta de eco do ICMP correspondente desse computador.
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
Parâmetros
Retornos
Um objeto PingReply que fornece informações sobre a mensagem de resposta de eco do ICMP, se uma mensagem tiver sido recebida ou descreve o motivo da falha, se nenhuma mensagem tiver sido recebida.
Exceções
address
é null
.
Uma chamada para SendAsync está em andamento.
Uma exceção foi gerada durante o envio ou recebimento de mensagens do ICMP. Consulte a exceção interna para obter a exceção exata gerada.
O objeto foi descartado.
Exemplos
O exemplo de código a seguir demonstra a chamada desse método.
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);
}
}
Comentários
Esse método envia para o host especificado por address
um buffer de 32 Byte dados com a mensagem de eco ICMP. O método aguarda cinco segundos por uma mensagem de resposta de eco ICMP. Se ele não receber uma resposta nesse tempo, o método retornará e a Status propriedade será definida como TimedOut.
Essa sobrecarga usa configurações padrão para fragmentação de pacotes e encaminhamento de pacotes. O pacote que contém a mensagem de eco ICMP poderá ser fragmentado em trânsito se o tamanho total do pacote exceder o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos. Para evitar a fragmentação, use um dos Send métodos que usa um options
parâmetro e defina a DontFragment propriedade como true
. Quando DontFragment é true
e o tamanho total do pacote excede o tamanho máximo do pacote que pode ser transmitido por um dos nós de roteamento entre os computadores locais e remotos, a solicitação de eco ICMP falha. Quando isso acontece, o Status é definido como PacketTooBig. Os fragmentos de pacote ou pacote (se fragmentados) podem ser encaminhados roteando nós 128 vezes antes de serem descartados. Para alterar essa configuração, use uma Send sobrecarga que usa um options
parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não atingir seu destino depois de ser encaminhado o número especificado de vezes, o pacote será descartado e a solicitação de eco ICMP falhará. Quando isso acontece, o Status é definido como TtlExpired.