Partilhar via


Ping.SendAsync Método

Definição

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para um computador e receber uma mensagem de resposta de eco ICMP correspondente desse computador.

Sobrecargas

Nome Description
SendAsync(String, Int32, Byte[], PingOptions, Object)

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador especificado e recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e controlar a fragmentação e valores de vida útil para o pacote ICMP.

SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador que tem o especificado IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e controle de fragmentação e valores de vida útil para o pacote de mensagem de eco ICMP.

SendAsync(String, Int32, Byte[], Object)

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador especificado e recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

SendAsync(IPAddress, Int32, Byte[], Object)

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador que tem o especificado IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

SendAsync(IPAddress, Int32, Object)

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador que tem a especificada IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

SendAsync(String, Object)

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador especificado e receber uma mensagem de resposta de eco ICMP correspondente desse computador.

SendAsync(IPAddress, Object)

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador que tem a especificada IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador.

SendAsync(String, Int32, Object)

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador especificado e receber uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

Comentários

Esses métodos não fazem com que o thread principal do aplicativo seja bloqueado. Se você quiser bloquear enquanto aguarda a mensagem de resposta de eco ICMP, use os Send métodos.

Observação

O endereço IP retornado por qualquer um dos SendAsync métodos pode se originar 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.

SendAsync(String, Int32, Byte[], PingOptions, Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador especificado e recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e controlar a fragmentação e valores de vida útil para o pacote ICMP.

public:
 void SendAsync(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken);
member this.SendAsync : string * int * byte[] * System.Net.NetworkInformation.PingOptions * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), options As PingOptions, userToken As Object)

Parâmetros

hostNameOrAddress
String

Um String que identifica o computador que é o destino da mensagem de eco ICMP. O valor especificado para esse parâmetro pode ser um nome de host ou uma representação de cadeia de caracteres de um endereço IP.

timeout
Int32

Um Int32 valor que especifica o número máximo de milissegundos (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.

buffer
Byte[]

Uma Byte matriz que contém dados a serem enviados com a mensagem de eco ICMP e retornados na mensagem de resposta de eco ICMP. A matriz não pode conter mais de 65.500 bytes.

options
PingOptions

Um PingOptions objeto usado para controlar a fragmentação e valores de vida útil para o pacote de mensagens de eco ICMP.

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

hostNameOrAddress é null ou é uma cadeia de caracteres vazia ("").

- ou -

buffer é null.

timeout é menor que zero.

Uma chamada está SendAsync em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

hostNameOrAddress não foi possível resolver um endereço IP válido.

Este objeto foi descartado.

O tamanho excede buffer 65500 bytes.

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

using System;
using System.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.ComponentModel;
using System.Threading;

namespace Examples.System.Net.NetworkInformation.PingTest
{
    public class PingExample
    {
        public static void Main (string[] args)
        {
            if (args.Length == 0)
                throw new ArgumentException ("Ping needs a host or IP Address.");

            string who = args[0];
            AutoResetEvent waiter = new AutoResetEvent (false);

            Ping pingSender = new Ping ();

            // When the PingCompleted event is raised,
            // the PingCompletedCallback method is called.
            pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);

            // Wait 12 seconds for a reply.
            int timeout = 12000;

            // 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);

            Console.WriteLine ("Time to live: {0}", options.Ttl);
            Console.WriteLine ("Don't fragment: {0}", options.DontFragment);

            // Send the ping asynchronously.
            // Use the waiter as the user token.
            // When the callback completes, it can wake up this thread.
            pingSender.SendAsync(who, timeout, buffer, options, waiter);

            // Prevent this example application from ending.
            // A real application should do something useful
            // when possible.
            waiter.WaitOne ();
            Console.WriteLine ("Ping example completed.");
        }

        private static void PingCompletedCallback (object sender, PingCompletedEventArgs e)
        {
            // If the operation was canceled, display a message to the user.
            if (e.Cancelled)
            {
                Console.WriteLine ("Ping canceled.");

                // Let the main thread resume.
                // UserToken is the AutoResetEvent object that the main thread
                // is waiting for.
                ((AutoResetEvent)e.UserState).Set ();
            }

            // If an error occurred, display the exception to the user.
            if (e.Error != null)
            {
                Console.WriteLine ("Ping failed:");
                Console.WriteLine (e.Error.ToString ());

                // Let the main thread resume.
                ((AutoResetEvent)e.UserState).Set();
            }

            PingReply reply = e.Reply;

            DisplayReply (reply);

            // Let the main thread resume.
            ((AutoResetEvent)e.UserState).Set();
        }

        public static void DisplayReply (PingReply reply)
        {
            if (reply == null)
                return;

            Console.WriteLine ("ping status: {0}", reply.Status);
            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);
            }
        }
    }
}

Comentários

O SendAsync método envia a mensagem echo de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve bloquear. Cada chamada é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Os aplicativos usam um PingCompletedEventHandler delegado para especificar o método que é chamado quando SendAsync aciona o evento. Você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Se o aplicativo deve bloquear enquanto aguarda uma resposta, use os Send métodos; esses métodos são síncronos.

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, timeouta 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 conjunto é 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 destino. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a

SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador que tem o especificado IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação e controle de fragmentação e valores de vida útil para o pacote de mensagem de eco ICMP.

public:
 void SendAsync(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options, object userToken);
member this.SendAsync : System.Net.IPAddress * int * byte[] * System.Net.NetworkInformation.PingOptions * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, buffer As Byte(), options As PingOptions, userToken As Object)

Parâmetros

address
IPAddress

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

timeout
Int32

Um Int32 valor que especifica o número máximo de milissegundos (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.

buffer
Byte[]

Uma Byte matriz que contém dados a serem enviados com a mensagem de eco ICMP e retornados na mensagem de resposta de eco ICMP. A matriz não pode conter mais de 65.500 bytes.

options
PingOptions

Um PingOptions objeto usado para controlar a fragmentação e valores de vida útil para o pacote de mensagens de eco ICMP.

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

address ou buffer é null.

timeout é menor que zero.

Uma chamada está SendAsync em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

address não é um endereço IP válido.

Este objeto foi descartado.

O tamanho excede buffer 65500 bytes.

.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. Para obter uma implementação do método de retorno de chamada, consulte a seção de exemplo de sobrecarga do SendAsync método.

O exemplo de código a seguir requer os seguintes namespaces:

using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading;

O exemplo de código a seguir envia uma mensagem de eco ICMP de forma assíncrona.

public static void AsyncComplexLocalPing ()
{
    // Get an object that will block the main thread.
    AutoResetEvent waiter = new AutoResetEvent (false);

    // Ping's the local machine.
    Ping pingSender = new Ping ();

    // When the PingCompleted event is raised,
    // the PingCompletedCallback method is called.
    pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);

    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);

    // Send the ping asynchronously.
    // Use the waiter as the user token.
    // When the callback completes, it can wake up this thread.
    pingSender.SendAsync (address, timeout, buffer, options, waiter);

    // Prevent this example application from ending.
    // A real application should do something useful
    // when possible.
    waiter.WaitOne ();
    Console.WriteLine ("Ping example completed.");
}

Comentários

O SendAsync método envia a mensagem echo de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve bloquear. Cada chamada é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Os aplicativos usam um PingCompletedEventHandler delegado para especificar o método que é chamado quando SendAsync aciona o evento. Você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Se o aplicativo bloquear enquanto aguarda uma resposta, use os Send métodos; esses métodos serão síncronos.

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, timeouta 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 conjunto é 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 destino. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a

SendAsync(String, Int32, Byte[], Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador especificado e recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

public:
 void SendAsync(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, byte[] buffer, object userToken);
member this.SendAsync : string * int * byte[] * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), userToken As Object)

Parâmetros

hostNameOrAddress
String

Um String que identifica o computador que é o destino da mensagem de eco ICMP. O valor especificado para esse parâmetro pode ser um nome de host ou uma representação de cadeia de caracteres de um endereço IP.

timeout
Int32

Um Int32 valor que especifica o número máximo de milissegundos (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.

buffer
Byte[]

Uma Byte matriz que contém dados a serem enviados com a mensagem de eco ICMP e retornados na mensagem de resposta de eco ICMP. A matriz não pode conter mais de 65.500 bytes.

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

hostNameOrAddress é null ou é uma cadeia de caracteres vazia ("").

- ou -

buffer é null.

timeout é menor que zero.

Uma chamada está SendAsync em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

hostNameOrAddress não foi possível resolver um endereço IP válido.

Este objeto foi descartado.

O tamanho excede buffer 65500 bytes.

.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 uma SendAsync sobrecarga, consulte a visão geral da Ping classe.

Comentários

O SendAsync método envia a mensagem echo de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve ser bloqueado. Cada chamada é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Os aplicativos usam um PingCompletedEventHandler delegado para especificar o método que é chamado quando SendAsync aciona o evento. Você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Se o aplicativo deve bloquear enquanto aguarda uma resposta, use os Send métodos; esses métodos são síncronos.

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, timeouta 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 SendAsync 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 conjunto é 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 SendAsync sobrecarga que usa um options parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a

SendAsync(IPAddress, Int32, Byte[], Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) de forma assíncrona com o buffer de dados especificado para o computador que tem o especificado IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

public:
 void SendAsync(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, byte[] buffer, object userToken);
member this.SendAsync : System.Net.IPAddress * int * byte[] * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, buffer As Byte(), userToken As Object)

Parâmetros

address
IPAddress

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

timeout
Int32

Um Int32 valor que especifica o número máximo de milissegundos (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.

buffer
Byte[]

Uma Byte matriz que contém dados a serem enviados com a mensagem de eco ICMP e retornados na mensagem de resposta de eco ICMP. A matriz não pode conter mais de 65.500 bytes.

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

address ou buffer é null.

timeout é menor que zero.

Uma chamada está SendAsync em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

address não é um endereço IP válido.

Este objeto foi descartado.

O tamanho excede buffer 65500 bytes.

.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 de código que demonstra a chamada de uma SendAsync sobrecarga, consulte a visão geral da Ping classe.

Comentários

Esse método envia a mensagem de eco de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve ser bloqueado. Cada chamada é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Para especificar o método que é chamado quando SendAsync aciona o evento, você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Observação

Se o aplicativo bloquear enquanto aguarda uma resposta, use os Send métodos; esses métodos serão síncronos.

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, timeouta 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 SendAsync 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 conjunto é 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 SendAsync sobrecarga que usa um options parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a

SendAsync(IPAddress, Int32, Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador que tem a especificada IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

public:
 void SendAsync(System::Net::IPAddress ^ address, int timeout, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, object? userToken);
public void SendAsync(System.Net.IPAddress address, int timeout, object userToken);
member this.SendAsync : System.Net.IPAddress * int * obj -> unit
Public Sub SendAsync (address As IPAddress, timeout As Integer, userToken As Object)

Parâmetros

address
IPAddress

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

timeout
Int32

Um Int32 valor que especifica o número máximo de milissegundos (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

address é null.

timeout é menor que zero.

Uma chamada ao SendAsync(IPAddress, Int32, Byte[], Object) método está em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

address não é um endereço IP válido.

Este objeto foi descartado.

Exemplos

Para obter um exemplo de código que demonstra a chamada de uma SendAsync sobrecarga, consulte a visão geral da Ping classe.

Comentários

O SendAsync método envia a mensagem echo de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve ser bloqueado. Cada chamada é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Os aplicativos usam um PingCompletedEventHandler delegado para especificar o método que é chamado quando SendAsync aciona o evento. Você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Se o aplicativo deve bloquear enquanto aguarda uma resposta, use os Send métodos; esses métodos são síncronos.

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, timeouta 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 SendAsync 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 conjunto é 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 SendAsync sobrecarga que usa um options parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a

SendAsync(String, Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador especificado e receber uma mensagem de resposta de eco ICMP correspondente desse computador.

public:
 void SendAsync(System::String ^ hostNameOrAddress, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, object? userToken);
public void SendAsync(string hostNameOrAddress, object userToken);
member this.SendAsync : string * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, userToken As Object)

Parâmetros

hostNameOrAddress
String

Um String que identifica o computador que é o destino da mensagem de eco ICMP. O valor especificado para esse parâmetro pode ser um nome de host ou uma representação de cadeia de caracteres de um endereço IP.

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

hostNameOrAddress é null ou é uma cadeia de caracteres vazia ("").

Uma chamada ao SendAsync(String, Object) método está em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

hostNameOrAddress não foi possível resolver um endereço IP válido.

Este objeto foi descartado.

Exemplos

Para obter um exemplo de código que demonstra a chamada do SendAsync método, consulte a visão geral da Ping classe.

Comentários

O SendAsync método envia a mensagem de eco de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve ser bloqueado. Cada chamada para esse método é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Para especificar o método que é chamado quando SendAsync aciona o evento, você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Observação

Se o aplicativo deve bloquear enquanto aguarda uma resposta, use os Send métodos; esses métodos são síncronos.

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 momento, o método retornará e a Status propriedade será definida como TimedOut.

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 SendAsync 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 conjunto é definido como PacketTooBig.

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 SendAsync sobrecarga que usa um options parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a

SendAsync(IPAddress, Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador que tem a especificada IPAddresse recebe uma mensagem de resposta de eco ICMP correspondente desse computador.

public:
 void SendAsync(System::Net::IPAddress ^ address, System::Object ^ userToken);
public void SendAsync(System.Net.IPAddress address, object? userToken);
public void SendAsync(System.Net.IPAddress address, object userToken);
member this.SendAsync : System.Net.IPAddress * obj -> unit
Public Sub SendAsync (address As IPAddress, userToken As Object)

Parâmetros

address
IPAddress

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

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

address é null.

Uma chamada para o SendAsync método está em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

address não é um endereço IP válido.

Este objeto foi descartado.

Exemplos

Para obter um exemplo de código que demonstra a chamada de um SendAsync método, consulte a visão geral da Ping classe.

Comentários

O SendAsync método envia a mensagem de eco de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve ser bloqueado. Cada chamada para esse método é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Para especificar o método que é chamado quando SendAsync aciona o evento, você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Observação

Se o aplicativo deve ser bloqueado enquanto aguarda uma resposta, use um dos Send métodos; esses métodos são síncronos.

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 período, o método retornará e a Status propriedade será definida como TimedOut.

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 SendAsync 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 conjunto é definido como PacketTooBig.

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 SendAsync sobrecarga que usa um options parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a

SendAsync(String, Int32, Object)

Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs
Origem:
Ping.cs

Tenta de forma assíncrona enviar uma mensagem de eco ICMP (Protocolo de Mensagem de Controle de Internet) para o computador especificado e receber uma mensagem de resposta de eco ICMP correspondente desse computador. Essa sobrecarga permite que você especifique um valor de tempo limite para a operação.

public:
 void SendAsync(System::String ^ hostNameOrAddress, int timeout, System::Object ^ userToken);
public void SendAsync(string hostNameOrAddress, int timeout, object? userToken);
public void SendAsync(string hostNameOrAddress, int timeout, object userToken);
member this.SendAsync : string * int * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, userToken As Object)

Parâmetros

hostNameOrAddress
String

Um String que identifica o computador que é o destino da mensagem de eco ICMP. O valor especificado para esse parâmetro pode ser um nome de host ou uma representação de cadeia de caracteres de um endereço IP.

timeout
Int32

Um Int32 valor que especifica o número máximo de milissegundos (depois de enviar a mensagem de eco) para aguardar a mensagem de resposta de eco ICMP.

userToken
Object

Um objeto que é passado para o método invocado quando a operação assíncrona é concluída.

Exceções

hostNameOrAddress é null ou é uma cadeia de caracteres vazia ("").

timeout é menor que zero.

Uma chamada está SendAsync em andamento.

Uma exceção foi gerada ao enviar ou receber as mensagens ICMP. Consulte a exceção interna para obter a exceção exata que foi gerada.

hostNameOrAddress não foi possível resolver um endereço IP válido.

Este objeto foi descartado.

Exemplos

Para obter um exemplo de código que demonstra a chamada do SendAsync método, consulte a visão geral da Ping classe.

Comentários

O SendAsync método envia a mensagem echo de forma assíncrona e, quando a operação é concluída (com êxito ou sem êxito), retorna o status para seu aplicativo. Chame o SendAsync método quando seu aplicativo não deve ser bloqueado. Cada chamada é executada em um thread separado que é alocado automaticamente do pool de threads. Quando a operação assíncrona é concluída, ela aciona o PingCompleted evento. Os aplicativos usam um PingCompletedEventHandler delegado para especificar o método que é chamado quando SendAsync aciona o evento. Você deve adicionar um PingCompletedEventHandler delegado ao evento antes de chamar SendAsync. O método do delegado recebe um PingCompletedEventArgs objeto que contém um PingReply objeto que descreve o resultado da SendAsync chamada. O PingCompletedEventArgs objeto herda a UserState propriedade. Essa propriedade contém o userToken objeto passado para a SendAsync chamada.

Se o aplicativo deve bloquear enquanto aguarda uma resposta, use os Send métodos; esses métodos são síncronos.

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, timeouta 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 SendAsync 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 conjunto é 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 SendAsync sobrecarga que usa um options parâmetro e defina a Ttl propriedade como o valor desejado. Se o pacote não chegar ao 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 conjunto é definido como TtlExpired.

Aplica-se a