Partager via


Ping.SendAsync Méthode

Définition

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à un ordinateur et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur.

Surcharges

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

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et de contrôler la fragmentation et les valeurs de durée de vie pour le paquet ICMP.

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

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur qui a le message de IPAddressréponse d’écho ICMP correspondant à partir de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et de contrôler la fragmentation et les valeurs Time-to-Live pour le paquet de message d’écho ICMP.

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

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

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

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur qui a le message de IPAddressréponse d’écho ICMP correspondant à partir de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

SendAsync(IPAddress, Int32, Object)

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur qui a le message de réponse d’écho ICMP correspondant IPAddressà partir de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

SendAsync(String, Object)

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur.

SendAsync(IPAddress, Object)

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur qui a le message de réponse d’écho ICMP correspondant IPAddressà partir de cet ordinateur.

SendAsync(String, Int32, Object)

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

Remarques

Ces méthodes n’entraînent pas le blocage du thread principal de votre application. Si vous souhaitez bloquer en attendant le message de réponse d’écho ICMP, utilisez les Send méthodes.

Note

L’adresse IP retournée par l’une SendAsync des méthodes peut provenir d’un ordinateur distant malveillant. Ne vous connectez pas à l’ordinateur distant à l’aide de ceci. Utilisez DNS pour déterminer l’adresse IP de l’ordinateur auquel vous souhaitez vous connecter.

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

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et de contrôler la fragmentation et les valeurs de durée de vie pour le paquet 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)

Paramètres

hostNameOrAddress
String

Qui String identifie l’ordinateur qui est la destination du message d’écho ICMP. La valeur spécifiée pour ce paramètre peut être un nom d’hôte ou une représentation sous forme de chaîne d’une adresse IP.

timeout
Int32

Valeur Int32 qui spécifie le nombre maximal de millisecondes (après l’envoi du message d’écho) pour attendre le message de réponse d’écho ICMP.

buffer
Byte[]

Tableau Byte qui contient les données à envoyer avec le message d’écho ICMP et retourné dans le message de réponse d’écho ICMP. Le tableau ne peut pas contenir plus de 65 500 octets.

options
PingOptions

Objet PingOptions utilisé pour contrôler la fragmentation et les valeurs time-to-Live pour le paquet de messages d’écho ICMP.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

hostNameOrAddress est null ou est une chaîne vide («  »).

- ou -

buffer a la valeur null.

timeout est inférieur à zéro.

Un appel est SendAsync en cours.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

hostNameOrAddress impossible de résoudre une adresse IP valide.

Cet objet a été supprimé.

La taille des buffer octets dépasse 65500 octets.

.NET 7 et versions ultérieures uniquement sur Linux : le processus n’est pas privilégié et buffer n’est pas vide.

Exemples

L’exemple de code suivant montre comment appeler cette méthode.

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

Remarques

La SendAsync méthode envoie le message Echo de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Les applications utilisent un PingCompletedEventHandler délégué pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement. Vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet qui contient un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Si votre application doit bloquer en attendant une réponse, utilisez les Send méthodes ; ces méthodes sont synchrones.

Si le message de réponse d’écho ICMP n’est pas reçu dans le délai spécifié par le timeout paramètre, l’écho ICMP échoue et la Status propriété est définie TimedOutsur .

Note

Lors de la spécification de très petits nombres pour timeout, la réponse Ping peut être reçue même si timeout des millisecondes se sont écoulées.

Si la propriété est true et que la DontFragment taille totale des paquets dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur .

Utilisez la Ttl propriété pour spécifier le nombre maximal de fois où le message d’écho ICMP peut être transféré avant d’atteindre sa destination. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à

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

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur qui a le message de IPAddressréponse d’écho ICMP correspondant à partir de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération et de contrôler la fragmentation et les valeurs Time-to-Live pour le paquet de message d’écho 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)

Paramètres

address
IPAddress

Qui IPAddress identifie l’ordinateur qui est la destination du message d’écho ICMP.

timeout
Int32

Valeur Int32 qui spécifie le nombre maximal de millisecondes (après l’envoi du message d’écho) pour attendre le message de réponse d’écho ICMP.

buffer
Byte[]

Tableau Byte qui contient les données à envoyer avec le message d’écho ICMP et retourné dans le message de réponse d’écho ICMP. Le tableau ne peut pas contenir plus de 65 500 octets.

options
PingOptions

Objet PingOptions utilisé pour contrôler la fragmentation et les valeurs time-to-Live pour le paquet de messages d’écho ICMP.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

address ou buffer est null.

timeout est inférieur à zéro.

Un appel est SendAsync en cours.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

address n’est pas une adresse IP valide.

Cet objet a été supprimé.

La taille des buffer octets dépasse 65500 octets.

.NET 7 et versions ultérieures uniquement sur Linux : le processus n’est pas privilégié et buffer n’est pas vide.

Exemples

L’exemple de code suivant montre comment appeler cette méthode. Pour une implémentation de la méthode de rappel, consultez la SendAsync section exemple de surcharge de méthode.

L’exemple de code suivant nécessite les espaces de noms suivants :

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

L’exemple de code suivant envoie un message d’écho ICMP de manière asynchrone.

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.");
}

Remarques

La SendAsync méthode envoie le message Echo de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Les applications utilisent un PingCompletedEventHandler délégué pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement. Vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet qui contient un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Si votre application bloque en attendant une réponse, utilisez les Send méthodes ; ces méthodes sont synchrones.

Si le message de réponse d’écho ICMP n’est pas reçu dans le délai spécifié par le timeout paramètre, l’écho ICMP échoue et la Status propriété est définie TimedOutsur .

Note

Lors de la spécification de très petits nombres pour timeout, la réponse Ping peut être reçue même si timeout des millisecondes se sont écoulées.

Si la propriété est true et que la DontFragment taille totale des paquets dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur .

Utilisez la Ttl propriété pour spécifier le nombre maximal de fois où le message d’écho ICMP peut être transféré avant d’atteindre sa destination. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à

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

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

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)

Paramètres

hostNameOrAddress
String

Qui String identifie l’ordinateur qui est la destination du message d’écho ICMP. La valeur spécifiée pour ce paramètre peut être un nom d’hôte ou une représentation sous forme de chaîne d’une adresse IP.

timeout
Int32

Valeur Int32 qui spécifie le nombre maximal de millisecondes (après l’envoi du message d’écho) pour attendre le message de réponse d’écho ICMP.

buffer
Byte[]

Tableau Byte qui contient les données à envoyer avec le message d’écho ICMP et retourné dans le message de réponse d’écho ICMP. Le tableau ne peut pas contenir plus de 65 500 octets.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

hostNameOrAddress est null ou est une chaîne vide («  »).

- ou -

buffer a la valeur null.

timeout est inférieur à zéro.

Un appel est SendAsync en cours.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

hostNameOrAddress impossible de résoudre une adresse IP valide.

Cet objet a été supprimé.

La taille des buffer octets dépasse 65500 octets.

.NET 7 et versions ultérieures uniquement sur Linux : le processus n’est pas privilégié et buffer n’est pas vide.

Exemples

L’exemple de code suivant montre comment appeler une SendAsync surcharge, consultez la vue d’ensemble de la Ping classe.

Remarques

La SendAsync méthode envoie le message Echo de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Les applications utilisent un PingCompletedEventHandler délégué pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement. Vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet contenant un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Si votre application doit bloquer en attendant une réponse, utilisez les Send méthodes ; ces méthodes sont synchrones.

Si le message de réponse d’écho ICMP n’est pas reçu dans le délai spécifié par le timeout paramètre, l’écho ICMP échoue et la Status propriété est définie TimedOutsur .

Note

Lors de la spécification de très petits nombres pour timeout, la réponse Ping peut être reçue même si timeout des millisecondes se sont écoulées.

Cette surcharge utilise les paramètres par défaut pour la fragmentation des paquets et le transfert de paquets. Le paquet qui contient le message d’écho ICMP peut être fragmenté en transit si la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants. Pour empêcher la fragmentation, utilisez l’une des SendAsync méthodes qui acceptent un options paramètre et définissez la DontFragment propriété truesur . true Quand DontFragment et la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur . Les fragments de paquets ou de paquets (s’ils sont fragmentés) peuvent être transférés par des nœuds de routage 128 fois avant d’être ignorés. Pour modifier ce paramètre, utilisez une SendAsync surcharge qui prend un options paramètre et définissez la propriété sur la Ttl valeur souhaitée. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à

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

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) avec la mémoire tampon de données spécifiée à l’ordinateur qui a le message de IPAddressréponse d’écho ICMP correspondant à partir de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

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)

Paramètres

address
IPAddress

Qui IPAddress identifie l’ordinateur qui est la destination du message d’écho ICMP.

timeout
Int32

Valeur Int32 qui spécifie le nombre maximal de millisecondes (après l’envoi du message d’écho) pour attendre le message de réponse d’écho ICMP.

buffer
Byte[]

Tableau Byte qui contient les données à envoyer avec le message d’écho ICMP et retourné dans le message de réponse d’écho ICMP. Le tableau ne peut pas contenir plus de 65 500 octets.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

address ou buffer est null.

timeout est inférieur à zéro.

Un appel est SendAsync en cours.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

address n’est pas une adresse IP valide.

Cet objet a été supprimé.

La taille des buffer octets dépasse 65500 octets.

.NET 7 et versions ultérieures uniquement sur Linux : le processus n’est pas privilégié et buffer n’est pas vide.

Exemples

Pour obtenir un exemple de code qui illustre l’appel d’une SendAsync surcharge, consultez la vue d’ensemble de la Ping classe.

Remarques

Cette méthode envoie le message d’écho de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement, vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet qui contient un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Note

Si votre application bloque en attendant une réponse, utilisez les Send méthodes ; ces méthodes sont synchrones.

Si le message de réponse d’écho ICMP n’est pas reçu dans le délai spécifié par le timeout paramètre, l’écho ICMP échoue et la Status propriété est définie TimedOutsur .

Note

Lors de la spécification de très petits nombres pour timeout, la réponse Ping peut être reçue même si timeout des millisecondes se sont écoulées.

Cette surcharge utilise les paramètres par défaut pour la fragmentation des paquets et le transfert de paquets. Le paquet qui contient le message d’écho ICMP peut être fragmenté en transit si la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants. Pour empêcher la fragmentation, utilisez l’une des SendAsync méthodes qui acceptent un options paramètre et définissez la DontFragment propriété truesur . true Quand DontFragment et la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur . Les fragments de paquets ou de paquets (s’ils sont fragmentés) peuvent être transférés par des nœuds de routage 128 fois avant d’être ignorés. Pour modifier ce paramètre, utilisez une SendAsync surcharge qui prend un options paramètre et définissez la propriété sur la Ttl valeur souhaitée. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à

SendAsync(IPAddress, Int32, Object)

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur qui a le message de réponse d’écho ICMP correspondant IPAddressà partir de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

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)

Paramètres

address
IPAddress

Qui IPAddress identifie l’ordinateur qui est la destination du message d’écho ICMP.

timeout
Int32

Valeur Int32 qui spécifie le nombre maximal de millisecondes (après l’envoi du message d’écho) pour attendre le message de réponse d’écho ICMP.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

address a la valeur null.

timeout est inférieur à zéro.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

address n’est pas une adresse IP valide.

Cet objet a été supprimé.

Exemples

Pour obtenir un exemple de code qui illustre l’appel d’une SendAsync surcharge, consultez la vue d’ensemble de la Ping classe.

Remarques

La SendAsync méthode envoie le message Echo de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Les applications utilisent un PingCompletedEventHandler délégué pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement. Vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet qui contient un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Si votre application doit bloquer en attendant une réponse, utilisez les Send méthodes ; ces méthodes sont synchrones.

Si le message de réponse d’écho ICMP n’est pas reçu dans le délai spécifié par le timeout paramètre, l’écho ICMP échoue et la Status propriété est définie TimedOutsur .

Note

Lors de la spécification de très petits nombres pour timeout, la réponse Ping peut être reçue même si timeout des millisecondes se sont écoulées.

Cette surcharge utilise les paramètres par défaut pour la fragmentation des paquets et le transfert de paquets. Le paquet qui contient le message d’écho ICMP peut être fragmenté en transit si la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants. Pour empêcher la fragmentation, utilisez l’une des SendAsync méthodes qui acceptent un options paramètre et définissez la DontFragment propriété truesur . true Quand DontFragment et la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur . Les fragments de paquets ou de paquets (s’ils sont fragmentés) peuvent être transférés par des nœuds de routage 128 fois avant d’être ignorés. Pour modifier ce paramètre, utilisez une SendAsync surcharge qui prend un options paramètre et définissez la propriété sur la Ttl valeur souhaitée. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à

SendAsync(String, Object)

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur.

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)

Paramètres

hostNameOrAddress
String

Qui String identifie l’ordinateur qui est la destination du message d’écho ICMP. La valeur spécifiée pour ce paramètre peut être un nom d’hôte ou une représentation sous forme de chaîne d’une adresse IP.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

hostNameOrAddress est null ou est une chaîne vide («  »).

Un appel à SendAsync(String, Object) la méthode est en cours.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

hostNameOrAddress impossible de résoudre une adresse IP valide.

Cet objet a été supprimé.

Exemples

Pour obtenir un exemple de code qui illustre l’appel de la méthode, consultez la vue d’ensemble de la SendAsyncPing classe.

Remarques

La SendAsync méthode envoie le message d’écho de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel à cette méthode s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement, vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet qui contient un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Note

Si votre application doit bloquer en attendant une réponse, utilisez les Send méthodes ; ces méthodes sont synchrones.

Cette méthode envoie une mémoire tampon de données 32 Byte avec le message d’écho ICMP. La méthode attend cinq secondes pour un message de réponse d’écho ICMP. S’il ne reçoit pas de réponse à ce moment-là, la méthode retourne et la Status propriété est définie TimedOutsur .

Cette surcharge utilise les paramètres par défaut pour la fragmentation des paquets et le transfert de paquets. Le paquet qui contient le message d’écho ICMP peut être fragmenté en transit si la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants. Pour empêcher la fragmentation, utilisez l’une des SendAsync méthodes qui acceptent un options paramètre et définissez la DontFragment propriété truesur . true Quand DontFragment et la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur .

Les fragments de paquets ou de paquets peuvent être transférés par des nœuds de routage 128 fois avant d’être ignorés. Pour modifier ce paramètre, utilisez une SendAsync surcharge qui prend un options paramètre et définissez la propriété sur la Ttl valeur souhaitée. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à

SendAsync(IPAddress, Object)

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur qui a le message de réponse d’écho ICMP correspondant IPAddressà partir de cet ordinateur.

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)

Paramètres

address
IPAddress

Qui IPAddress identifie l’ordinateur qui est la destination du message d’écho ICMP.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

address a la valeur null.

Un appel à la SendAsync méthode est en cours.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

address n’est pas une adresse IP valide.

Cet objet a été supprimé.

Exemples

Pour obtenir un exemple de code illustrant l’appel d’une SendAsync méthode, consultez la vue d’ensemble de la Ping classe.

Remarques

La SendAsync méthode envoie le message d’écho de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel à cette méthode s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement, vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet qui contient un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Note

Si votre application doit bloquer en attendant une réponse, utilisez l’une Send des méthodes . Ces méthodes sont synchrones.

Cette méthode envoie une mémoire tampon de données 32 Byte avec le message d’écho ICMP. La méthode attend cinq secondes pour un message de réponse d’écho ICMP. S’il ne reçoit pas de réponse dans ce temps, la méthode retourne et la Status propriété est définie TimedOutsur .

Cette surcharge utilise les paramètres par défaut pour la fragmentation des paquets et le transfert de paquets. Le paquet qui contient le message d’écho ICMP peut être fragmenté en transit si la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants. Pour empêcher la fragmentation, utilisez l’une des SendAsync méthodes qui acceptent un options paramètre et définissez la DontFragment propriété truesur . true Quand DontFragment et la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur .

Les fragments de paquets ou de paquets peuvent être transférés par des nœuds de routage 128 fois avant d’être ignorés. Pour modifier ce paramètre, utilisez une SendAsync surcharge qui prend un options paramètre et définissez la propriété sur la Ttl valeur souhaitée. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à

SendAsync(String, Int32, Object)

Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs
Source:
Ping.cs

Tente de manière asynchrone d’envoyer un message d’écho ICMP (Internet Control Message Protocol) à l’ordinateur spécifié et reçoit un message de réponse d’écho ICMP correspondant de cet ordinateur. Cette surcharge vous permet de spécifier une valeur de délai d’attente pour l’opération.

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)

Paramètres

hostNameOrAddress
String

Qui String identifie l’ordinateur qui est la destination du message d’écho ICMP. La valeur spécifiée pour ce paramètre peut être un nom d’hôte ou une représentation sous forme de chaîne d’une adresse IP.

timeout
Int32

Valeur Int32 qui spécifie le nombre maximal de millisecondes (après l’envoi du message d’écho) pour attendre le message de réponse d’écho ICMP.

userToken
Object

Objet passé à la méthode appelée lorsque l’opération asynchrone se termine.

Exceptions

hostNameOrAddress est null ou est une chaîne vide («  »).

timeout est inférieur à zéro.

Un appel est SendAsync en cours.

Une exception a été levée lors de l’envoi ou de la réception des messages ICMP. Consultez l’exception interne pour l’exception exacte levée.

hostNameOrAddress impossible de résoudre une adresse IP valide.

Cet objet a été supprimé.

Exemples

Pour obtenir un exemple de code qui illustre l’appel de la méthode, consultez la vue d’ensemble de la SendAsyncPing classe.

Remarques

La SendAsync méthode envoie le message Echo de façon asynchrone et, lorsque l’opération se termine (avec succès ou échec), retourne l’état à votre application. Appelez la SendAsync méthode lorsque votre application ne doit pas bloquer. Chaque appel s’exécute dans un thread distinct qui est automatiquement alloué à partir du pool de threads. Une fois l’opération asynchrone terminée, elle déclenche l’événement PingCompleted . Les applications utilisent un PingCompletedEventHandler délégué pour spécifier la méthode appelée lors SendAsync de la déclenchement de l’événement. Vous devez ajouter un PingCompletedEventHandler délégué à l’événement avant d’appeler SendAsync. La méthode du délégué reçoit un PingCompletedEventArgs objet qui contient un PingReply objet qui décrit le résultat de l’appel SendAsync . L’objet PingCompletedEventArgs hérite de la UserState propriété. Cette propriété contient l’objet userToken passé dans l’appel SendAsync .

Si votre application doit bloquer en attendant une réponse, utilisez les Send méthodes ; ces méthodes sont synchrones.

Si le message de réponse d’écho ICMP n’est pas reçu dans le délai spécifié par le timeout paramètre, l’écho ICMP échoue et la Status propriété est définie TimedOutsur .

Note

Lors de la spécification de très petits nombres pour timeout, la réponse Ping peut être reçue même si timeout des millisecondes se sont écoulées.

Cette surcharge utilise les paramètres par défaut pour la fragmentation des paquets et le transfert de paquets. Le paquet qui contient le message d’écho ICMP peut être fragmenté en transit si la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants. Pour empêcher la fragmentation, utilisez l’une des SendAsync méthodes qui acceptent un options paramètre et définissez la DontFragment propriété truesur . true Quand DontFragment et la taille totale du paquet dépasse la taille maximale des paquets qui peut être transmise par l’un des nœuds de routage entre les ordinateurs locaux et distants, la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie PacketTooBigsur . Les fragments de paquets ou de paquets (s’ils sont fragmentés) peuvent être transférés par des nœuds de routage 128 fois avant d’être ignorés. Pour modifier ce paramètre, utilisez une SendAsync surcharge qui prend un options paramètre et définissez la propriété sur la Ttl valeur souhaitée. Si le paquet n’atteint pas sa destination après avoir été transféré le nombre de fois spécifié, le paquet est ignoré et la demande d’écho ICMP échoue. Lorsque cela se produit, la Status valeur est définie TtlExpiredsur .

S’applique à