Ping.SendAsync Ping.SendAsync Ping.SendAsync Ping.SendAsync Method

Definition

Versucht, eine ICMP (Internet Control Message Protocol)-Echomeldung asynchron an einen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to a computer, and receive a corresponding ICMP echo reply message from that computer.

Überlädt

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. Mit dieser Überladung können Sie einen Timeoutwert für den Vorgang angeben und die Werte für Fragmentierung und Gültigkeitsdauer des ICMP-Pakets steuern.This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP packet.

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer. Mit dieser Überladung können Sie einen Timeoutwert für den Vorgang angeben und die Werte für Fragmentierung und Gültigkeitsdauer des ICMP-Echomeldungspakets steuern.This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP echo message packet.

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

SendAsync(IPAddress, Int32, Object) SendAsync(IPAddress, Int32, Object) SendAsync(IPAddress, Int32, Object) SendAsync(IPAddress, Int32, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

SendAsync(String, Object) SendAsync(String, Object) SendAsync(String, Object) SendAsync(String, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer.

SendAsync(IPAddress, Object) SendAsync(IPAddress, Object) SendAsync(IPAddress, Object) SendAsync(IPAddress, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer.

SendAsync(String, Int32, Object) SendAsync(String, Int32, Object) SendAsync(String, Int32, Object) SendAsync(String, Int32, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

Hinweise

Diese Methoden führen nicht Ihrer Anwendung-Hauptthread zu blockieren.These methods do not cause your application's main thread to block. Wenn Sie beim Warten auf die ICMP-echoantwortmeldung blockieren möchten, verwenden Sie die Send Methoden.If you want to block while waiting for the ICMP echo reply message, use the Send methods.

Hinweis

Die IP-Adresse, die von einer beliebigen zurückgegebene der SendAsync Methoden können von einem böswilligen Remotecomputer stammen.The IP address returned by any of the SendAsync methods can originate from a malicious remote computer. Verbinden Sie nicht mit dem Remotecomputer, die mit diesem.Do not connect to the remote computer using this. Verwenden Sie DNS, um die IP-Adresse des Computers zu bestimmen, zu dem Sie eine Verbindung herstellen möchten.Use DNS to determine the IP address of the machine to which you want to connect.

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. Mit dieser Überladung können Sie einen Timeoutwert für den Vorgang angeben und die Werte für Fragmentierung und Gültigkeitsdauer des ICMP-Pakets steuern.This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP packet.

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

Parameter

hostNameOrAddress
String String String String

Ein String, der den Computer bezeichnet, der das Ziel für die ICMP-Echomeldung ist.A String that identifies the computer that is the destination for the ICMP echo message. Der für diesen Parameter angegebene Wert kann eine Hostname oder eine Zeichenfolgenentsprechung einer IP-Adresse sein.The value specified for this parameter can be a host name or a string representation of an IP address.

timeout
Int32 Int32 Int32 Int32

Ein Byte-Array, das Daten enthält, die mit der ICMP-Echomeldung gesendet und in der ICMP-Echoantwortmeldung zurückgegeben werden sollen.A Byte array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. Das Array kann höchstens 65.500 Bytes enthalten.The array cannot contain more than 65,500 bytes.

buffer
Byte[]

Ein Int32-Wert, der die maximale Anzahl von Millisekunden angibt (nach dem Senden der Echomeldung), für die auf die ICMP-Echoantwortmeldung gewartet werden soll.An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.

options
PingOptions PingOptions PingOptions PingOptions

Ein PingOptions-Objekt, das verwendet wird, um die Werte für Fragmentierung und Gültigkeitsdauer des ICMP-Echomeldungspakets zu steuern.A PingOptions object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

hostNameOrAddress ist null oder eine leere Zeichenfolge ("").hostNameOrAddress is null or is an empty string ("").

- oder --or- buffer ist null.buffer is null.

address ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.address is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

hostNameOrAddress konnte nicht in eine gültige IP-Adresse aufgelöst werden.hostNameOrAddress could not be resolved to a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Die Größe des buffer übersteigt 65.500 Bytes.The size of buffer exceeds 65500 bytes.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie diese Methode aufgerufen wird.The following code example demonstrates how to call this method.

#using <System.dll>

using namespace System;
using namespace System::Text;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::ComponentModel;
using namespace System::Threading;
void PingCompletedCallback( Object^ sender, PingCompletedEventArgs^ e );
void DisplayReply( PingReply^ reply );
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args->Length == 1 )
      throw gcnew ArgumentException( "Ping needs a host or IP Address." );

   String^ who = args[ 1 ];
   AutoResetEvent^ waiter = gcnew AutoResetEvent( false );
   
   Ping ^ pingSender = gcnew Ping;
   
   // When the PingCompleted event is raised,
   // the PingCompletedCallback method is called.
   pingSender->PingCompleted += gcnew PingCompletedEventHandler( PingCompletedCallback );
   
   // Create a buffer of 32 bytes of data to be transmitted.
   String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   array<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 = gcnew 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." );
}


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.
      (dynamic_cast<AutoResetEvent^>(e->UserState))->Set();
   }

   
   // If an error occurred, display the exception to the user.
   if ( e->Error != nullptr )
   {
      Console::WriteLine( "Ping failed:" );
      Console::WriteLine( e->Error->ToString() );
      
      // Let the main thread resume. 
      (dynamic_cast<AutoResetEvent^>(e->UserState))->Set();
   }

   PingReply ^ reply = e->Reply;
   DisplayReply( reply );
   
   // Let the main thread resume.
   (dynamic_cast<AutoResetEvent^>(e->UserState))->Set();
}


void DisplayReply( PingReply ^ reply )
{
   if ( reply == nullptr )
      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 );
   }
}

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

Hinweise

Die SendAsync Methode sendet die-echomeldung asynchron und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.The SendAsync method sends the Echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn die Anwendung nicht blockiert werden muss.Call the SendAsync method when your application must not block. Jeder Aufruf führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Anwendungen verwenden eine PingCompletedEventHandler Delegaten an die Methode, die aufgerufen wird, wenn SendAsync löst das Ereignis aus.Applications use a PingCompletedEventHandler delegate to specify the method that is called when SendAsync raises the event. Sie müssen Hinzufügen einer PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.You must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs -Objekt, enthält eine PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object that contains a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert werden soll, verwenden Sie die Send Methoden; diese Methoden sind synchron.If your application should block while waiting for a reply, use the Send methods; these methods are synchronous.

Wenn die ICMP-echoantwortmeldung nicht innerhalb der angegebenen Zeit empfangen wird die timeout Parameter, die ICMP-Echo schlägt fehl, und die Status -Eigenschaftensatz auf TimedOut.If the ICMP echo reply message is not received within the time specified by the timeout parameter, the ICMP echo fails, and the Status property is set to TimedOut.

Hinweis

Wenn Sie für sehr kleine Zahlen angeben timeout, die Ping-Antwort empfangen werden kann, wenn timeout Millisekunden verstrichen sind.When specifying very small numbers for timeout, the Ping reply can be received even if timeout milliseconds have elapsed.

Wenn die DontFragment Eigenschaft true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.If the DontFragment property is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig.

Verwenden der Ttl Eigenschaft, um die maximale Anzahl an, wie oft anzugeben, die ICMP-echomeldung kann vor dem Erreichen des Ziels weitergeleitet werden.Use the Ttl property to specify the maximum number of times the ICMP echo message can be forwarded before reaching its destination. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer. Mit dieser Überladung können Sie einen Timeoutwert für den Vorgang angeben und die Werte für Fragmentierung und Gültigkeitsdauer des ICMP-Echomeldungspakets steuern.This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP echo message packet.

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

Parameter

address
IPAddress IPAddress IPAddress IPAddress

Eine IPAddress, die den Computer bezeichnet, der das Ziel der ICMP-Echomeldung ist.An IPAddress that identifies the computer that is the destination for the ICMP echo message.

timeout
Int32 Int32 Int32 Int32

Ein Int32-Wert, der die maximale Anzahl von Millisekunden angibt (nach dem Senden der Echomeldung), für die auf die ICMP-Echoantwortmeldung gewartet werden soll.An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.

buffer
Byte[]

Ein Byte-Array, das Daten enthält, die mit der ICMP-Echomeldung gesendet und in der ICMP-Echoantwortmeldung zurückgegeben werden sollen.A Byte array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. Das Array kann höchstens 65.500 Bytes enthalten.The array cannot contain more than 65,500 bytes.

options
PingOptions PingOptions PingOptions PingOptions

Ein PingOptions-Objekt, das verwendet wird, um die Werte für Fragmentierung und Gültigkeitsdauer des ICMP-Echomeldungspakets zu steuern.A PingOptions object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

address ist null.address is null.

- oder - -or- buffer ist null.buffer is null.

address ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.address is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

address ist keine gültige IP-Adresse.address is not a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Die Größe des buffer übersteigt 65.500 Bytes.The size of buffer exceeds 65500 bytes.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie diese Methode aufgerufen wird.The following code example demonstrates how to call this method. Eine Implementierung der Rückrufmethode darstellt, finden Sie unter den SendAsync Methode Überladung Beispielabschnitt.For an implementation of the callback method, see the SendAsync method overload example section.

Im folgenden Codebeispiel sind die folgenden Namespaces erforderlich:The following code example requires the following namespaces:

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::Text;
using namespace System::Threading;

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

Im folgenden Codebeispiel sendet eine ICMP-echomeldung asynchron aus.The following code example sends an ICMP echo message asynchronously.

void AsyncComplexLocalPing()
{
   
   // Get an object that will block the main thread.
   AutoResetEvent^ waiter = gcnew AutoResetEvent( false );
   
   // Ping's the local machine.
   Ping ^ pingSender = gcnew Ping;
   
   // When the PingCompleted event is raised,
   // the PingCompletedCallback method is called.
   pingSender->PingCompleted += gcnew PingCompletedEventHandler( PingCompletedCallback );
   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 );
   
   // 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." );
}


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

Hinweise

Die SendAsync Methode sendet die-echomeldung asynchron und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.The SendAsync method sends the Echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn die Anwendung nicht blockiert werden muss.Call the SendAsync method when your application must not block. Jeder Aufruf führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Anwendungen verwenden eine PingCompletedEventHandler Delegaten an die Methode, die aufgerufen wird, wenn SendAsync löst das Ereignis aus.Applications use a PingCompletedEventHandler delegate to specify the method that is called when SendAsync raises the event. Sie müssen Hinzufügen einer PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.You must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs -Objekt, enthält eine PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object that contains a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert wird, verwenden Sie die Send Methoden; diese Methoden sind synchron.If your application blocks while waiting for a reply, use the Send methods; these methods are synchronous.

Wenn die ICMP-echoantwortmeldung nicht innerhalb der angegebenen Zeit empfangen wird die timeout Parameter, die ICMP-Echo schlägt fehl, und die Status -Eigenschaftensatz auf TimedOut.If the ICMP echo reply message is not received within the time specified by the timeout parameter, the ICMP echo fails, and the Status property is set to TimedOut.

Hinweis

Wenn Sie für sehr kleine Zahlen angeben timeout, die Ping-Antwort empfangen werden kann, wenn timeout Millisekunden verstrichen sind.When specifying very small numbers for timeout, the Ping reply can be received even if timeout milliseconds have elapsed.

Wenn die DontFragment Eigenschaft true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.If the DontFragment property is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig.

Verwenden der Ttl Eigenschaft, um die maximale Anzahl an, wie oft anzugeben, die ICMP-echomeldung kann vor dem Erreichen des Ziels weitergeleitet werden.Use the Ttl property to specify the maximum number of times the ICMP echo message can be forwarded before reaching its destination. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

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);
member this.SendAsync : string * int * byte[] * obj -> unit
Public Sub SendAsync (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), userToken As Object)

Parameter

hostNameOrAddress
String String String String

Ein String, der den Computer bezeichnet, der das Ziel für die ICMP-Echomeldung ist.A String that identifies the computer that is the destination for the ICMP echo message. Der für diesen Parameter angegebene Wert kann eine Hostname oder eine Zeichenfolgenentsprechung einer IP-Adresse sein.The value specified for this parameter can be a host name or a string representation of an IP address.

timeout
Int32 Int32 Int32 Int32

Ein Int32-Wert, der die maximale Anzahl von Millisekunden angibt (nach dem Senden der Echomeldung), für die auf die ICMP-Echoantwortmeldung gewartet werden soll.An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.

buffer
Byte[]

Ein Byte-Array, das Daten enthält, die mit der ICMP-Echomeldung gesendet und in der ICMP-Echoantwortmeldung zurückgegeben werden sollen.A Byte array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. Das Array kann höchstens 65.500 Bytes enthalten.The array cannot contain more than 65,500 bytes.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

hostNameOrAddress ist null oder eine leere Zeichenfolge ("").hostNameOrAddress is null or is an empty string ("").

- oder --or- buffer ist null.buffer is null.

hostNameOrAddress ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.hostNameOrAddress is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

hostNameOrAddress konnte nicht in eine gültige IP-Adresse aufgelöst werden.hostNameOrAddress could not be resolved to a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Die Größe des buffer übersteigt 65.500 Bytes.The size of buffer exceeds 65500 bytes.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie zum Aufrufen einer SendAsync überladen, finden Sie unter den Ping Übersicht über die Klasse.The following code example demonstrates how to call a SendAsync overload, see the Ping class overview.

Hinweise

Die SendAsync Methode sendet die-echomeldung asynchron und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.The SendAsync method sends the Echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn Ihre Anwendung nicht blockiert werden soll.Call the SendAsync method when your application should not block. Jeder Aufruf führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Anwendungen verwenden eine PingCompletedEventHandler Delegaten an die Methode, die aufgerufen wird, wenn SendAsync löst das Ereignis aus.Applications use a PingCompletedEventHandler delegate to specify the method that is called when SendAsync raises the event. Sie müssen Hinzufügen einer PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.You must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs Objekt mit einer PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object containing a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert werden soll, verwenden Sie die Send Methoden; diese Methoden sind synchron.If your application should block while waiting for a reply, use the Send methods; these methods are synchronous.

Wenn die ICMP-echoantwortmeldung nicht innerhalb der angegebenen Zeit empfangen wird die timeout Parameter, die ICMP-Echo schlägt fehl, und die Status -Eigenschaftensatz auf TimedOut.If the ICMP echo reply message is not received within the time specified by the timeout parameter, the ICMP echo fails, and the Status property is set to TimedOut.

Hinweis

Wenn Sie für sehr kleine Zahlen angeben timeout, die Ping-Antwort empfangen werden kann, wenn timeout Millisekunden verstrichen sind.When specifying very small numbers for timeout, the Ping reply can be received even if timeout milliseconds have elapsed.

Diese Überladung verwendet die Standardeinstellungen für die Paketfragmentierung und Paketweiterleitung.This overload uses default settings for packet fragmentation and packet forwarding. Das Paket, das die ICMP-echomeldung enthält kann während der Übertragung fragmentiert werden überschreitet die Paketgröße des gesamten die maximale Paketgröße, die übertragen werden kann von einem der Routingknoten zwischen den lokalen Computern und Remotecomputern.The packet that contains the ICMP echo message can be fragmented in transit if the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers. Um die Fragmentierung zu verhindern, verwenden Sie eine der der SendAsync Methoden, bei denen ein options -Parameter, und legen Sie die DontFragment Eigenschaft, um true.To prevent fragmentation, use one of the SendAsync methods that takes an options parameter, and set the DontFragment property to true. Wenn DontFragment ist true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.When DontFragment is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig. Das Paket oder Paketfragmente (wenn fragmentiert) können durch Routingknoten 128 Mal weitergeleitet werden, bevor Sie verworfen werden.The packet or packet fragments (if fragmented) can be forwarded by routing nodes 128 times before being discarded. Um diese Einstellung zu ändern, verwenden eine SendAsync -Überladung mit eine options -Parameter, und legen Sie die Ttl Eigenschaft auf den gewünschten Wert.To change this setting, use a SendAsync overload that takes an options parameter, and set the Ttl property to the desired value. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

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

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung mit dem angegebenen Datenpuffer an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

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

Parameter

address
IPAddress IPAddress IPAddress IPAddress

Eine IPAddress, die den Computer bezeichnet, der das Ziel der ICMP-Echomeldung ist.An IPAddress that identifies the computer that is the destination for the ICMP echo message.

timeout
Int32 Int32 Int32 Int32

Ein Int32-Wert, der die maximale Anzahl von Millisekunden angibt (nach dem Senden der Echomeldung), für die auf die ICMP-Echoantwortmeldung gewartet werden soll.An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.

buffer
Byte[]

Ein Byte-Array, das Daten enthält, die mit der ICMP-Echomeldung gesendet und in der ICMP-Echoantwortmeldung zurückgegeben werden sollen.A Byte array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. Das Array kann höchstens 65.500 Bytes enthalten.The array cannot contain more than 65,500 bytes.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

address ist null.address is null.

- oder - -or- buffer ist null.buffer is null.

address ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.address is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

address ist keine gültige IP-Adresse.address is not a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Die Größe des buffer übersteigt 65.500 Bytes.The size of buffer exceeds 65500 bytes.

Beispiele

Ein Codebeispiel, das Aufrufen veranschaulicht eine SendAsync überladen, finden Sie unter den Ping Übersicht über die Klasse.For a code example that demonstrates calling a SendAsync overload, see the Ping class overview.

Hinweise

Diese Methode sendet die-echomeldung asynchron, und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.This method sends the echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn Ihre Anwendung nicht blockiert werden soll.Call the SendAsync method when your application should not block. Jeder Aufruf führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Die Methode an, die aufgerufen wird, wenn SendAsync Auslösen des Ereignisses, müssen Sie hinzufügen, eine PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.To specify the method that is called when SendAsync raises the event, you must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs -Objekt, enthält eine PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object that contains a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Hinweis

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert wird, verwenden Sie die Send Methoden; diese Methoden sind synchron.If your application blocks while waiting for a reply, use the Send methods; these methods are synchronous.

Wenn die ICMP-echoantwortmeldung nicht innerhalb der angegebenen Zeit empfangen wird die timeout Parameter, die ICMP-Echo schlägt fehl, und die Status -Eigenschaftensatz auf TimedOut.If the ICMP echo reply message is not received within the time specified by the timeout parameter, the ICMP echo fails, and the Status property is set to TimedOut.

Hinweis

Wenn Sie für sehr kleine Zahlen angeben timeout, die Ping-Antwort empfangen werden kann, wenn timeout Millisekunden verstrichen sind.When specifying very small numbers for timeout, the Ping reply can be received even if timeout milliseconds have elapsed.

Diese Überladung verwendet die Standardeinstellungen für die Paketfragmentierung und Paketweiterleitung.This overload uses default settings for packet fragmentation and packet forwarding. Das Paket, das die ICMP-echomeldung enthält kann während der Übertragung fragmentiert werden überschreitet die Paketgröße des gesamten die maximale Paketgröße, die übertragen werden kann von einem der Routingknoten zwischen den lokalen Computern und Remotecomputern.The packet that contains the ICMP echo message can be fragmented in transit if the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers. Um die Fragmentierung zu verhindern, verwenden Sie eine der der SendAsync Methoden, bei denen ein options -Parameter, und legen Sie die DontFragment Eigenschaft, um true.To prevent fragmentation, use one of the SendAsync methods that takes an options parameter, and set the DontFragment property to true. Wenn DontFragment ist true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.When DontFragment is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig. Das Paket oder Paketfragmente (wenn fragmentiert) können durch Routingknoten 128 Mal weitergeleitet werden, bevor Sie verworfen werden.The packet or packet fragments (if fragmented) can be forwarded by routing nodes 128 times before being discarded. Um diese Einstellung zu ändern, verwenden eine SendAsync -Überladung mit eine options -Parameter, und legen Sie die Ttl Eigenschaft auf den gewünschten Wert.To change this setting, use a SendAsync overload that takes an options parameter, and set the Ttl property to the desired value. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

SendAsync(IPAddress, Int32, Object) SendAsync(IPAddress, Int32, Object) SendAsync(IPAddress, Int32, Object) SendAsync(IPAddress, Int32, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

public:
 void SendAsync(System::Net::IPAddress ^ address, int timeout, System::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)

Parameter

address
IPAddress IPAddress IPAddress IPAddress

Eine IPAddress, die den Computer bezeichnet, der das Ziel der ICMP-Echomeldung ist.An IPAddress that identifies the computer that is the destination for the ICMP echo message.

timeout
Int32 Int32 Int32 Int32

Ein Int32-Wert, der die maximale Anzahl von Millisekunden angibt (nach dem Senden der Echomeldung), für die auf die ICMP-Echoantwortmeldung gewartet werden soll.An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

address ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.address is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

address ist keine gültige IP-Adresse.address is not a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Beispiele

Ein Codebeispiel, das Aufrufen veranschaulicht eine SendAsync überladen, finden Sie unter den Ping Übersicht über die Klasse.For a code example that demonstrates calling a SendAsync overload, see the Ping class overview.

Hinweise

Die SendAsync Methode sendet die-echomeldung asynchron und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.The SendAsync method sends the Echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn Ihre Anwendung nicht blockiert werden soll.Call the SendAsync method when your application should not block. Jeder Aufruf führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Anwendungen verwenden eine PingCompletedEventHandler Delegaten an die Methode, die aufgerufen wird, wenn SendAsync löst das Ereignis aus.Applications use a PingCompletedEventHandler delegate to specify the method that is called when SendAsync raises the event. Sie müssen Hinzufügen einer PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.You must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs -Objekt, enthält eine PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object that contains a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert werden soll, verwenden Sie die Send Methoden; diese Methoden sind synchron.If your application should block while waiting for a reply, use the Send methods; these methods are synchronous.

Wenn die ICMP-echoantwortmeldung nicht innerhalb der angegebenen Zeit empfangen wird die timeout Parameter, die ICMP-Echo schlägt fehl, und die Status -Eigenschaftensatz auf TimedOut.If the ICMP echo reply message is not received within the time specified by the timeout parameter, the ICMP echo fails, and the Status property is set to TimedOut.

Hinweis

Wenn Sie für sehr kleine Zahlen angeben timeout, die Ping-Antwort empfangen werden kann, wenn timeout Millisekunden verstrichen sind.When specifying very small numbers for timeout, the Ping reply can be received even if timeout milliseconds have elapsed.

Diese Überladung verwendet die Standardeinstellungen für die Paketfragmentierung und Paketweiterleitung.This overload uses default settings for packet fragmentation and packet forwarding. Das Paket, das die ICMP-echomeldung enthält kann während der Übertragung fragmentiert werden überschreitet die Paketgröße des gesamten die maximale Paketgröße, die übertragen werden kann von einem der Routingknoten zwischen den lokalen Computern und Remotecomputern.The packet that contains the ICMP echo message can be fragmented in transit if the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers. Um die Fragmentierung zu verhindern, verwenden Sie eine der der SendAsync Methoden, bei denen ein options -Parameter, und legen Sie die DontFragment Eigenschaft, um true.To prevent fragmentation, use one of the SendAsync methods that takes an options parameter, and set the DontFragment property to true. Wenn DontFragment ist true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.When DontFragment is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig. Das Paket oder Paketfragmente (wenn fragmentiert) können durch Routingknoten 128 Mal weitergeleitet werden, bevor Sie verworfen werden.The packet or packet fragments (if fragmented) can be forwarded by routing nodes 128 times before being discarded. Um diese Einstellung zu ändern, verwenden eine SendAsync -Überladung mit eine options -Parameter, und legen Sie die Ttl Eigenschaft auf den gewünschten Wert.To change this setting, use a SendAsync overload that takes an options parameter, and set the Ttl property to the desired value. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

SendAsync(String, Object) SendAsync(String, Object) SendAsync(String, Object) SendAsync(String, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer.

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

Parameter

hostNameOrAddress
String String String String

Ein String, der den Computer bezeichnet, der das Ziel für die ICMP-Echomeldung ist.A String that identifies the computer that is the destination for the ICMP echo message. Der für diesen Parameter angegebene Wert kann eine Hostname oder eine Zeichenfolgenentsprechung einer IP-Adresse sein.The value specified for this parameter can be a host name or a string representation of an IP address.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

hostNameOrAddress ist null oder eine leere Zeichenfolge ("").hostNameOrAddress is null or is an empty string ("").

address ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.address is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

hostNameOrAddress konnte nicht in eine gültige IP-Adresse aufgelöst werden.hostNameOrAddress could not be resolved to a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Beispiele

Ein Codebeispiel, das Aufrufen veranschaulicht die SendAsync -Methode finden Sie unter den Ping Übersicht über die Klasse.For a code example that demonstrates calling the SendAsync method, see the Ping class overview.

Hinweise

Die SendAsync Methode sendet die-echomeldung asynchron und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.The SendAsync method sends the echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn Ihre Anwendung nicht blockiert werden soll.Call the SendAsync method when your application should not block. Jeder Aufruf dieser Methode führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call to this method executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Die Methode an, die aufgerufen wird, wenn SendAsync Auslösen des Ereignisses, müssen Sie hinzufügen, eine PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.To specify the method that is called when SendAsync raises the event, you must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs -Objekt, enthält eine PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object that contains a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Hinweis

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert werden soll, verwenden Sie die Send Methoden; diese Methoden sind synchron.If your application should block while waiting for a reply, use the Send methods; these methods are synchronous.

Diese Methode sendet eine 32 Byte Datenpuffer mit der ICMP-echomeldung.This method sends a 32 Byte data buffer with the ICMP echo message. Die Methode wartet fünf Sekunden eine ICMP-echoantwortmeldung.The method waits five seconds for an ICMP echo reply message. Die Methode gibt zurück, wenn in diesem Zeitraum keine Antwort empfangen wird und die Status -Eigenschaftensatz auf TimedOut.If it does not receive a reply in that time the method returns and the Status property is set to TimedOut.

Diese Überladung verwendet die Standardeinstellungen für die Paketfragmentierung und Paketweiterleitung.This overload uses default settings for packet fragmentation and packet forwarding. Das Paket, das die ICMP-echomeldung enthält kann während der Übertragung fragmentiert werden überschreitet die Paketgröße des gesamten die maximale Paketgröße, die übertragen werden kann von einem der Routingknoten zwischen den lokalen Computern und Remotecomputern.The packet that contains the ICMP echo message can be fragmented in transit if the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers. Um die Fragmentierung zu verhindern, verwenden Sie eine der der SendAsync Methoden, bei denen ein options -Parameter, und legen Sie die DontFragment Eigenschaft, um true.To prevent fragmentation, use one of the SendAsync methods that takes an options parameter, and set the DontFragment property to true. Wenn DontFragment ist true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.When DontFragment is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig.

Das Paket oder Paketfragmente können durch Routingknoten 128 Mal weitergeleitet werden, bevor Sie verworfen werden.The packet or packet fragments can be forwarded by routing nodes 128 times before being discarded. Um diese Einstellung zu ändern, verwenden eine SendAsync -Überladung mit eine options -Parameter, und legen Sie die Ttl Eigenschaft auf den gewünschten Wert.To change this setting, use a SendAsync overload that takes an options parameter, and set the Ttl property to the desired value. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

SendAsync(IPAddress, Object) SendAsync(IPAddress, Object) SendAsync(IPAddress, Object) SendAsync(IPAddress, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an einen Computer mit der angegebenen IPAddress zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified IPAddress, and receive a corresponding ICMP echo reply message from that computer.

public:
 void SendAsync(System::Net::IPAddress ^ address, System::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)

Parameter

address
IPAddress IPAddress IPAddress IPAddress

Eine IPAddress, die den Computer bezeichnet, der das Ziel der ICMP-Echomeldung ist.An IPAddress that identifies the computer that is the destination for the ICMP echo message.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

Ein Aufruf der SendAsync-Methode wird gerade ausgeführt.A call to the SendAsync method is in progress.

address ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.address is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

address ist keine gültige IP-Adresse.address is not a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Beispiele

Ein Codebeispiel, das Aufrufen veranschaulicht eine SendAsync -Methode finden Sie unter den Ping Übersicht über die Klasse.For a code example that demonstrates calling a SendAsync method, see the Ping class overview.

Hinweise

Die SendAsync Methode sendet die-echomeldung asynchron und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.The SendAsync method sends the echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn Ihre Anwendung nicht blockiert werden soll.Call the SendAsync method when your application should not block. Jeder Aufruf dieser Methode führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call to this method executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Die Methode an, die aufgerufen wird, wenn SendAsync Auslösen des Ereignisses, müssen Sie hinzufügen, eine PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.To specify the method that is called when SendAsync raises the event, you must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs -Objekt, enthält eine PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object that contains a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Hinweis

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert werden soll, verwenden Sie eine der der Send Methoden; diese Methoden sind synchron.If your application should block while waiting for a reply, use one of the Send methods; these methods are synchronous.

Diese Methode sendet eine 32 Byte Datenpuffer mit der ICMP-echomeldung.This method sends a 32 Byte data buffer with the ICMP echo message. Die Methode wartet fünf Sekunden eine ICMP-echoantwortmeldung.The method waits five seconds for an ICMP echo reply message. Die Methode gibt zurück, wenn es in diesem Zeitraum nicht über eine Antwort erhält, und die Status -Eigenschaftensatz auf TimedOut.If it does not receive a reply in that time, the method returns and the Status property is set to TimedOut.

Diese Überladung verwendet die Standardeinstellungen für die Paketfragmentierung und Paketweiterleitung.This overload uses default settings for packet fragmentation and packet forwarding. Das Paket, das die ICMP-echomeldung enthält kann während der Übertragung fragmentiert werden überschreitet die Paketgröße des gesamten die maximale Paketgröße, die übertragen werden kann von einem der Routingknoten zwischen den lokalen Computern und Remotecomputern.The packet that contains the ICMP echo message can be fragmented in transit if the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers. Um die Fragmentierung zu verhindern, verwenden Sie eine der der SendAsync Methoden, bei denen ein options -Parameter, und legen Sie die DontFragment Eigenschaft, um true.To prevent fragmentation, use one of the SendAsync methods that takes an options parameter, and set the DontFragment property to true. Wenn DontFragment ist true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.When DontFragment is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig.

Das Paket oder Paketfragmente können durch Routingknoten 128 Mal weitergeleitet werden, bevor Sie verworfen werden.The packet or packet fragments can be forwarded by routing nodes 128 times before being discarded. Um diese Einstellung zu ändern, verwenden eine SendAsync -Überladung mit eine options -Parameter, und legen Sie die Ttl Eigenschaft auf den gewünschten Wert.To change this setting, use a SendAsync overload that takes an options parameter, and set the Ttl property to the desired value. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

SendAsync(String, Int32, Object) SendAsync(String, Int32, Object) SendAsync(String, Int32, Object) SendAsync(String, Int32, Object)

Versucht, asynchron eine ICMP (Internet Control Message Protocol)-Echomeldung an den angegebenen Computer zu senden und eine entsprechende ICMP-Echoantwortmeldung von diesem Computer zu empfangen.Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. Diese Überladung ermöglicht es Ihnen, einen Timeoutwert für den Vorgang anzugeben.This overload allows you to specify a time-out value for the operation.

public:
 void SendAsync(System::String ^ hostNameOrAddress, int timeout, System::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)

Parameter

hostNameOrAddress
String String String String

Ein String, der den Computer bezeichnet, der das Ziel für die ICMP-Echomeldung ist.A String that identifies the computer that is the destination for the ICMP echo message. Der für diesen Parameter angegebene Wert kann eine Hostname oder eine Zeichenfolgenentsprechung einer IP-Adresse sein.The value specified for this parameter can be a host name or a string representation of an IP address.

timeout
Int32 Int32 Int32 Int32

Ein Int32-Wert, der die maximale Anzahl von Millisekunden angibt (nach dem Senden der Echomeldung), für die auf die ICMP-Echoantwortmeldung gewartet werden soll.An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.

userToken
Object Object Object Object

Ein Objekt, das an die beim Abschluss des asynchronen Vorgangs aufgerufene Methode übergeben wird.An object that is passed to the method invoked when the asynchronous operation completes.

Ausnahmen

hostNameOrAddress ist null oder eine leere Zeichenfolge ("").hostNameOrAddress is null or is an empty string ("").

hostNameOrAddress ist eine IPv6-Adresse, und auf dem lokalen Computer wird ein älteres Betriebssystem als Windows 2000 ausgeführt.hostNameOrAddress is an IPv6 address and the local computer is running an operating system earlier than Windows 2000.

Beim Senden oder Empfangen der ICMP-Meldungen wurde eine Ausnahme ausgelöst.An exception was thrown while sending or receiving the ICMP messages. Welche Ausnahme genau ausgelöst wurde, entnehmen Sie der internen Ausnahme.See the inner exception for the exact exception that was thrown.

hostNameOrAddress konnte nicht in eine gültige IP-Adresse aufgelöst werden.hostNameOrAddress could not be resolved to a valid IP address.

Dieses Objekt wurde verworfen.This object has been disposed.

Beispiele

Ein Codebeispiel, das Aufrufen veranschaulicht die SendAsync -Methode finden Sie unter den Ping Übersicht über die Klasse.For a code example that demonstrates calling the SendAsync method, see the Ping class overview.

Hinweise

Die SendAsync Methode sendet die-echomeldung asynchron und beim Abschluss des Vorgangs (erfolgreich oder nicht erfolgreich), den Status an die Anwendung zurückgegeben.The SendAsync method sends the Echo message asynchronously and, when the operation completes (successfully or unsuccessfully), returns the status to your application. Rufen Sie die SendAsync Methode, wenn Ihre Anwendung nicht blockiert werden soll.Call the SendAsync method when your application should not block. Jeder Aufruf führt in einem separaten Thread, der automatisch aus dem Threadpool zugeordnet ist.Each call executes in a separate thread that is automatically allocated from the thread pool. Wenn der asynchrone Vorgang abgeschlossen ist, löst die PingCompleted Ereignis.When the asynchronous operation completes, it raises the PingCompleted event. Anwendungen verwenden eine PingCompletedEventHandler Delegaten an die Methode, die aufgerufen wird, wenn SendAsync löst das Ereignis aus.Applications use a PingCompletedEventHandler delegate to specify the method that is called when SendAsync raises the event. Sie müssen Hinzufügen einer PingCompletedEventHandler Delegat, der das Ereignis vor dem Aufruf SendAsync.You must add a PingCompletedEventHandler delegate to the event before calling SendAsync. Die-Methode des Delegaten erhält eine PingCompletedEventArgs -Objekt, enthält eine PingReply -Objekt, das das Ergebnis des beschreibt die SendAsync aufrufen.The delegate's method receives a PingCompletedEventArgs object that contains a PingReply object that describes the result of the SendAsync call. Die PingCompletedEventArgs Objekt erbt die UserState Eigenschaft.The PingCompletedEventArgs object inherits the UserState property. Diese Eigenschaft enthält die userToken -Objekt übergeben, in der SendAsync aufrufen.This property contains the userToken object passed into the SendAsync call.

Wenn Ihre Anwendung beim Warten auf einer Antwort blockiert werden soll, verwenden Sie die Send Methoden; diese Methoden sind synchron.If your application should block while waiting for a reply, use the Send methods; these methods are synchronous.

Wenn die ICMP-echoantwortmeldung nicht innerhalb der angegebenen Zeit empfangen wird die timeout Parameter, die ICMP-Echo schlägt fehl, und die Status -Eigenschaftensatz auf TimedOut.If the ICMP echo reply message is not received within the time specified by the timeout parameter, the ICMP echo fails, and the Status property is set to TimedOut.

Hinweis

Wenn Sie für sehr kleine Zahlen angeben timeout, die Ping-Antwort empfangen werden kann, wenn timeout Millisekunden verstrichen sind.When specifying very small numbers for timeout, the Ping reply can be received even if timeout milliseconds have elapsed.

Diese Überladung verwendet die Standardeinstellungen für die Paketfragmentierung und Paketweiterleitung.This overload uses default settings for packet fragmentation and packet forwarding. Das Paket, das die ICMP-echomeldung enthält kann während der Übertragung fragmentiert werden überschreitet die Paketgröße des gesamten die maximale Paketgröße, die übertragen werden kann von einem der Routingknoten zwischen den lokalen Computern und Remotecomputern.The packet that contains the ICMP echo message can be fragmented in transit if the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers. Um die Fragmentierung zu verhindern, verwenden Sie eine der der SendAsync Methoden, bei denen ein options -Parameter, und legen Sie die DontFragment Eigenschaft, um true.To prevent fragmentation, use one of the SendAsync methods that takes an options parameter, and set the DontFragment property to true. Wenn DontFragment ist true die gesamte überschreitet der maximale Paketgröße, die von einem der Knoten routing zwischen dem lokalen Computer und Remotecomputer übertragen werden kann, wird die ICMP-Echoanfrage ein.When DontFragment is true and the total packet size exceeds the maximum packet size that can be transmitted by one of the routing nodes between the local and remote computers, the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu PacketTooBig.When this happens, the Status is set to PacketTooBig. Das Paket oder Paketfragmente (wenn fragmentiert) können durch Routingknoten 128 Mal weitergeleitet werden, bevor Sie verworfen werden.The packet or packet fragments (if fragmented) can be forwarded by routing nodes 128 times before being discarded. Um diese Einstellung zu ändern, verwenden eine SendAsync -Überladung mit eine options -Parameter, und legen Sie die Ttl Eigenschaft auf den gewünschten Wert.To change this setting, use a SendAsync overload that takes an options parameter, and set the Ttl property to the desired value. Wenn das Paket nicht das Ziel nach dem die angegebene Anzahl von Malen weitergeleitet wird erreicht, wird das Paket verworfen, und die ICMP-Echoanfrage schlägt fehl.If the packet does not reach its destination after being forwarded the specified number of times, the packet is discarded and the ICMP echo request fails. In diesem Fall die Status nastaven NA hodnotu TtlExpired.When this happens, the Status is set to TtlExpired.

Sicherheit

NetworkInformationPermission
Eine ICMP-echomeldung gesendet.To send an ICMP echo message. Zugeordnete Enumeration: PingAssociated enumeration: Ping

Gilt für: