Partilhar via


Ping.Send Método

Definição

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 buffertamanho 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

address
IPAddress

Um IPAddress que identifica o computador de destino da mensagem de eco ICMP.

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 buffertamanho 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

address
IPAddress

Um IPAddress que identifica o computador de destino da mensagem de eco ICMP.

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

address
IPAddress

Um IPAddress que identifica o computador de destino da mensagem de eco ICMP.

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

address
IPAddress

Um IPAddress que identifica o computador de destino da mensagem de eco ICMP.

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

address
IPAddress

Um IPAddress que identifica o computador de destino da mensagem de eco ICMP.

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.

Aplica-se a