Ping.SendAsync Metode

Definisi

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut.

Overload

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

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi dan mengontrol fragmentasi dan nilai Time-to-Live untuk paket ICMP.

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

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang memiliki IPAddress, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi dan mengontrol fragmentasi dan nilai Time-to-Live untuk paket pesan gema ICMP.

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

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

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

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang memiliki IPAddress, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

SendAsync(IPAddress, Int32, Object)

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang memiliki IPAddress, dan menerima pesan balasan echo ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

SendAsync(String, Object)

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut.

SendAsync(IPAddress, Object)

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang memiliki IPAddress, dan menerima pesan balasan echo ICMP yang sesuai dari komputer tersebut.

SendAsync(String, Int32, Object)

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

Keterangan

Metode ini tidak menyebabkan utas utama aplikasi Anda diblokir. Jika Anda ingin memblokir saat menunggu pesan balasan gema ICMP, gunakan Send metode .

Catatan

Alamat IP yang dikembalikan oleh salah SendAsync satu metode dapat berasal dari komputer jarak jauh berbahaya. Jangan sambungkan ke komputer jarak jauh dengan menggunakan ini. Gunakan DNS untuk menentukan alamat IP komputer yang ingin Anda sambungkan.

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

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi dan mengontrol fragmentasi dan nilai Time-to-Live untuk paket 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)

Parameter

hostNameOrAddress
String

String Yang mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP. Nilai yang ditentukan untuk parameter ini dapat menjadi nama host atau representasi string dari alamat IP.

timeout
Int32

Int32 Nilai yang menentukan jumlah maksimum milidetik (setelah mengirim pesan gema) untuk menunggu pesan balasan gema ICMP.

buffer
Byte[]

Array Byte yang berisi data yang akan dikirim dengan pesan gema ICMP dan dikembalikan dalam pesan balasan gema ICMP. Array tidak boleh berisi lebih dari 65.500 byte.

options
PingOptions

Objek yang PingOptions digunakan untuk mengontrol fragmentasi dan nilai Time-to-Live untuk paket pesan gema ICMP.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

hostNameOrAddress adalah null atau adalah string kosong ("").

-atau-

bufferadalah null.

timeout kurang dari nol.

Panggilan ke SendAsync sedang berlangsung.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

hostNameOrAddress tidak dapat diselesaikan ke alamat IP yang valid.

Obyek ini telah dibuang.

Ukuran buffer melebihi 65500 byte.

.NET 7 dan versi yang lebih baru hanya di Linux: Prosesnya tidak diistimewakan, dan buffer tidak kosong.

Contoh

Contoh kode berikut menunjukkan cara memanggil metode ini.

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

Keterangan

Metode SendAsync mengirim pesan Echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi akan menaikkan PingCompleted peristiwa. Aplikasi menggunakan PingCompletedEventHandler delegasi untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa. Anda harus menambahkan PingCompletedEventHandler delegasi ke acara sebelum memanggil SendAsync. Metode delegasi menerima PingCompletedEventArgs objek yang berisi PingReply objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Jika aplikasi Anda harus memblokir saat menunggu balasan, gunakan Send metode ; metode ini sinkron.

Jika pesan balasan gema ICMP tidak diterima dalam waktu yang ditentukan oleh timeout parameter, gema ICMP gagal, dan Status properti diatur ke TimedOut.

Catatan

Ketika menentukan angka yang sangat kecil untuk timeout, balasan Ping dapat diterima meskipun timeout milidetik telah berlalu.

DontFragment Jika properti adalah true dan ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig.

Ttl Gunakan properti untuk menentukan berapa kali pesan gema ICMP dapat diteruskan sebelum mencapai tujuannya. Jika paket tidak mencapai tujuannya setelah diteruskan berapa kali yang ditentukan, paket dibuang dan permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk

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

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang memiliki IPAddress, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi dan mengontrol fragmentasi dan nilai Time-to-Live untuk paket pesan gema 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)

Parameter

address
IPAddress

Yang IPAddress mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP.

timeout
Int32

Int32 Nilai yang menentukan jumlah maksimum milidetik (setelah mengirim pesan gema) untuk menunggu pesan balasan gema ICMP.

buffer
Byte[]

Array Byte yang berisi data yang akan dikirim dengan pesan gema ICMP dan dikembalikan dalam pesan balasan gema ICMP. Array tidak boleh berisi lebih dari 65.500 byte.

options
PingOptions

Objek yang PingOptions digunakan untuk mengontrol fragmentasi dan nilai Time-to-Live untuk paket pesan gema ICMP.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

address atau buffer adalah null.

timeout kurang dari nol.

Panggilan ke SendAsync sedang berlangsung.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

address bukan alamat IP yang valid.

Obyek ini telah dibuang.

Ukuran buffer melebihi 65500 byte.

.NET 7 dan versi yang lebih baru hanya di Linux: Prosesnya tidak diistimewakan, dan buffer tidak kosong.

Contoh

Contoh kode berikut menunjukkan cara memanggil metode ini. Untuk implementasi metode panggilan balik, lihat SendAsync bagian contoh kelebihan beban metode.

Contoh kode berikut memerlukan namespace berikut:

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

Contoh kode berikut mengirimkan pesan gema ICMP secara asinkron.

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

Keterangan

Metode SendAsync mengirim pesan Echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi akan menaikkan PingCompleted peristiwa. Aplikasi menggunakan PingCompletedEventHandler delegasi untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa. Anda harus menambahkan PingCompletedEventHandler delegasi ke acara sebelum memanggil SendAsync. Metode delegasi menerima PingCompletedEventArgs objek yang berisi PingReply objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Jika aplikasi Anda memblokir saat menunggu balasan, gunakan Send metode ; metode ini sinkron.

Jika pesan balasan gema ICMP tidak diterima dalam waktu yang ditentukan oleh timeout parameter, gema ICMP gagal, dan Status properti diatur ke TimedOut.

Catatan

Ketika menentukan angka yang sangat kecil untuk timeout, balasan Ping dapat diterima meskipun timeout milidetik telah berlalu.

DontFragment Jika properti adalah true dan ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig.

Ttl Gunakan properti untuk menentukan berapa kali pesan gema ICMP dapat diteruskan sebelum mencapai tujuannya. Jika paket tidak mencapai tujuannya setelah diteruskan berapa kali yang ditentukan, paket dibuang dan permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk

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

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

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)

Parameter

hostNameOrAddress
String

String Yang mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP. Nilai yang ditentukan untuk parameter ini dapat menjadi nama host atau representasi string dari alamat IP.

timeout
Int32

Int32 Nilai yang menentukan jumlah maksimum milidetik (setelah mengirim pesan gema) untuk menunggu pesan balasan gema ICMP.

buffer
Byte[]

Array Byte yang berisi data yang akan dikirim dengan pesan gema ICMP dan dikembalikan dalam pesan balasan gema ICMP. Array tidak boleh berisi lebih dari 65.500 byte.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

hostNameOrAddress adalah null atau adalah string kosong ("").

-atau-

bufferadalah null.

timeout kurang dari nol.

Panggilan ke SendAsync sedang berlangsung.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

hostNameOrAddress tidak dapat diselesaikan ke alamat IP yang valid.

Obyek ini telah dibuang.

Ukuran buffer melebihi 65500 byte.

.NET 7 dan versi yang lebih baru hanya di Linux: Prosesnya tidak diistimewakan, dan buffer tidak kosong.

Contoh

Contoh kode berikut menunjukkan cara memanggil SendAsync kelebihan beban, lihat Ping gambaran umum kelas.

Keterangan

Metode SendAsync mengirim pesan Echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi akan menaikkan PingCompleted peristiwa. Aplikasi menggunakan PingCompletedEventHandler delegasi untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa. Anda harus menambahkan PingCompletedEventHandler delegasi ke acara sebelum memanggil SendAsync. Metode delegasi menerima objek yang PingCompletedEventArgsPingReply berisi objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Jika aplikasi Anda harus memblokir saat menunggu balasan, gunakan Send metode ; metode ini sinkron.

Jika pesan balasan gema ICMP tidak diterima dalam waktu yang ditentukan oleh timeout parameter, gema ICMP gagal, dan Status properti diatur ke TimedOut.

Catatan

Ketika menentukan angka yang sangat kecil untuk timeout, balasan Ping dapat diterima meskipun timeout milidetik telah berlalu.

Kelebihan beban ini menggunakan pengaturan default untuk fragmentasi paket dan penerusan paket. Paket yang berisi pesan gema ICMP dapat terfragmentasi saat transit jika ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh. Untuk mencegah fragmentasi, gunakan salah SendAsync satu metode yang mengambil options parameter, dan atur properti ke DontFragmenttrue. Kapan DontFragment dan true ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig. Paket atau fragmen paket (jika terfragmentasi) dapat diteruskan dengan merutekan simpul 128 kali sebelum dibuang. Untuk mengubah pengaturan ini, gunakan SendAsync kelebihan beban yang mengambil options parameter, dan atur Ttl properti ke nilai yang diinginkan. Jika paket tidak mencapai tujuannya setelah diteruskan berapa kali yang ditentukan, paket dibuang dan permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk

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

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) dengan buffer data yang ditentukan ke komputer yang memiliki IPAddress, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

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)

Parameter

address
IPAddress

Yang IPAddress mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP.

timeout
Int32

Int32 Nilai yang menentukan jumlah maksimum milidetik (setelah mengirim pesan gema) untuk menunggu pesan balasan gema ICMP.

buffer
Byte[]

Array Byte yang berisi data yang akan dikirim dengan pesan gema ICMP dan dikembalikan dalam pesan balasan gema ICMP. Array tidak boleh berisi lebih dari 65.500 byte.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

address atau buffer adalah null.

timeout kurang dari nol.

Panggilan ke SendAsync sedang berlangsung.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

address bukan alamat IP yang valid.

Obyek ini telah dibuang.

Ukuran buffer melebihi 65500 byte.

.NET 7 dan versi yang lebih baru hanya di Linux: Prosesnya tidak diistimewakan, dan buffer tidak kosong.

Contoh

Untuk contoh kode yang menunjukkan panggilan SendAsync kelebihan beban, lihat Ping gambaran umum kelas.

Keterangan

Metode ini mengirim pesan echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi akan menaikkan PingCompleted peristiwa. Untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa, Anda harus menambahkan PingCompletedEventHandler delegasi ke peristiwa sebelum memanggil SendAsync. Metode delegasi menerima PingCompletedEventArgs objek yang berisi PingReply objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Catatan

Jika aplikasi Anda memblokir saat menunggu balasan, gunakan Send metode ; metode ini sinkron.

Jika pesan balasan gema ICMP tidak diterima dalam waktu yang ditentukan oleh timeout parameter, gema ICMP gagal, dan Status properti diatur ke TimedOut.

Catatan

Ketika menentukan angka yang sangat kecil untuk timeout, balasan Ping dapat diterima meskipun timeout milidetik telah berlalu.

Kelebihan beban ini menggunakan pengaturan default untuk fragmentasi paket dan penerusan paket. Paket yang berisi pesan gema ICMP dapat terfragmentasi saat transit jika ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh. Untuk mencegah fragmentasi, gunakan salah SendAsync satu metode yang mengambil options parameter, dan atur properti ke DontFragmenttrue. Kapan DontFragment dan true ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig. Paket atau fragmen paket (jika terfragmentasi) dapat diteruskan dengan merutekan simpul 128 kali sebelum dibuang. Untuk mengubah pengaturan ini, gunakan SendAsync kelebihan beban yang mengambil options parameter, dan atur Ttl properti ke nilai yang diinginkan. Jika paket tidak mencapai tujuannya setelah diteruskan berapa kali yang ditentukan, paket dibuang dan permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk

SendAsync(IPAddress, Int32, Object)

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang memiliki IPAddress, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

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)

Parameter

address
IPAddress

Yang IPAddress mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP.

timeout
Int32

Int32 Nilai yang menentukan jumlah maksimum milidetik (setelah mengirim pesan gema) untuk menunggu pesan balasan gema ICMP.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

addressadalah null.

timeout kurang dari nol.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

address bukan alamat IP yang valid.

Obyek ini telah dibuang.

Contoh

Untuk contoh kode yang menunjukkan panggilan SendAsync kelebihan beban, lihat Ping gambaran umum kelas.

Keterangan

Metode ini SendAsync mengirim pesan Echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi tersebut akan memunculkan PingCompleted peristiwa. Aplikasi menggunakan PingCompletedEventHandler delegasi untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa. Anda harus menambahkan PingCompletedEventHandler delegasi ke acara sebelum memanggil SendAsync. Metode delegasi menerima PingCompletedEventArgs objek yang berisi PingReply objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Jika aplikasi Anda harus memblokir saat menunggu balasan, gunakan Send metode ; metode ini sinkron.

Jika pesan balasan gema ICMP tidak diterima dalam waktu yang ditentukan oleh timeout parameter, gema ICMP gagal, dan Status properti diatur ke TimedOut.

Catatan

Ketika menentukan angka yang sangat kecil untuk timeout, balasan Ping dapat diterima meskipun timeout milidetik telah berlalu.

Kelebihan beban ini menggunakan pengaturan default untuk fragmentasi paket dan penerusan paket. Paket yang berisi pesan echo ICMP dapat difragmentasi saat transit jika ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu node perutean antara komputer lokal dan jarak jauh. Untuk mencegah fragmentasi, gunakan salah SendAsync satu metode yang mengambil options parameter, dan atur DontFragment properti ke true. Kapan DontFragment adalah true dan ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan echo ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig. Fragmen paket atau paket (jika terfragmentasi) dapat diteruskan dengan merutekan simpul 128 kali sebelum dibuang. Untuk mengubah pengaturan ini, gunakan SendAsync kelebihan beban yang mengambil options parameter, dan atur Ttl properti ke nilai yang diinginkan. Jika paket tidak mencapai tujuannya setelah diteruskan beberapa kali, paket dibuang dan permintaan ICMP echo gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk

SendAsync(String, Object)

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut.

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)

Parameter

hostNameOrAddress
String

String Yang mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP. Nilai yang ditentukan untuk parameter ini dapat berupa nama host atau representasi string alamat IP.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

hostNameOrAddress adalah null atau adalah string kosong ("").

Panggilan ke SendAsync(String, Object) metode sedang berlangsung.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

hostNameOrAddress tidak dapat diatasi ke alamat IP yang valid.

Objek ini telah dibuang.

Contoh

Untuk contoh kode yang menunjukkan pemanggilan SendAsync metode, lihat Ping gambaran umum kelas.

Keterangan

Metode mengirim SendAsync pesan echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan ke metode ini dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi tersebut akan memunculkan PingCompleted peristiwa. Untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa, Anda harus menambahkan PingCompletedEventHandler delegasi ke peristiwa sebelum memanggil SendAsync. Metode delegasi menerima PingCompletedEventArgs objek yang berisi PingReply objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Catatan

Jika aplikasi Anda harus memblokir saat menunggu balasan, gunakan Send metode ; metode ini sinkron.

Metode ini mengirim buffer data 32 Byte dengan pesan gema ICMP. Metode menunggu lima detik untuk pesan balasan gema ICMP. Jika tidak menerima balasan pada saat itu metode kembali dan Status properti diatur ke TimedOut.

Kelebihan beban ini menggunakan pengaturan default untuk fragmentasi paket dan penerusan paket. Paket yang berisi pesan echo ICMP dapat difragmentasi saat transit jika ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu node perutean antara komputer lokal dan jarak jauh. Untuk mencegah fragmentasi, gunakan salah SendAsync satu metode yang mengambil options parameter, dan atur DontFragment properti ke true. Kapan DontFragment adalah true dan ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan echo ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig.

Fragmen paket atau paket dapat diteruskan dengan simpul perutean 128 kali sebelum dibuang. Untuk mengubah pengaturan ini, gunakan SendAsync kelebihan beban yang mengambil options parameter, dan atur Ttl properti ke nilai yang diinginkan. Jika paket tidak mencapai tujuannya setelah diteruskan beberapa kali, paket dibuang dan permintaan ICMP echo gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk

SendAsync(IPAddress, Object)

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang memiliki IPAddress, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut.

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)

Parameter

address
IPAddress

Yang IPAddress mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

addressadalah null.

Panggilan ke SendAsync metode sedang berlangsung.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

address bukan alamat IP yang valid.

Objek ini telah dibuang.

Contoh

Untuk contoh kode yang menunjukkan pemanggilan SendAsync metode, lihat Ping gambaran umum kelas.

Keterangan

Metode mengirim SendAsync pesan echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan ke metode ini dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi tersebut akan memunculkan PingCompleted peristiwa. Untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa, Anda harus menambahkan PingCompletedEventHandler delegasi ke peristiwa sebelum memanggil SendAsync. Metode delegasi menerima PingCompletedEventArgs objek yang berisi PingReply objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Catatan

Jika aplikasi Anda harus memblokir saat menunggu balasan, gunakan salah Send satu metode; metode ini sinkron.

Metode ini mengirim buffer data 32 Byte dengan pesan gema ICMP. Metode menunggu lima detik untuk pesan balasan gema ICMP. Jika tidak menerima balasan dalam waktu tersebut, metode akan kembali dan Status properti diatur ke TimedOut.

Kelebihan beban ini menggunakan pengaturan default untuk fragmentasi paket dan penerusan paket. Paket yang berisi pesan echo ICMP dapat difragmentasi saat transit jika ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu node perutean antara komputer lokal dan jarak jauh. Untuk mencegah fragmentasi, gunakan salah SendAsync satu metode yang mengambil options parameter, dan atur DontFragment properti ke true. Kapan DontFragment adalah true dan ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan echo ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig.

Fragmen paket atau paket dapat diteruskan dengan simpul perutean 128 kali sebelum dibuang. Untuk mengubah pengaturan ini, gunakan SendAsync kelebihan beban yang mengambil options parameter, dan atur Ttl properti ke nilai yang diinginkan. Jika paket tidak mencapai tujuannya setelah diteruskan beberapa kali, paket dibuang dan permintaan ICMP echo gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk

SendAsync(String, Int32, Object)

Sumber:
Ping.cs
Sumber:
Ping.cs
Sumber:
Ping.cs

Secara asinkron mencoba mengirim pesan gema Internet Control Message Protocol (ICMP) ke komputer yang ditentukan, dan menerima pesan balasan gema ICMP yang sesuai dari komputer tersebut. Kelebihan beban ini memungkinkan Anda menentukan nilai waktu habis untuk operasi.

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)

Parameter

hostNameOrAddress
String

String Yang mengidentifikasi komputer yang merupakan tujuan untuk pesan gema ICMP. Nilai yang ditentukan untuk parameter ini dapat menjadi nama host atau representasi string dari alamat IP.

timeout
Int32

Int32 Nilai yang menentukan jumlah maksimum milidetik (setelah mengirim pesan gema) untuk menunggu pesan balasan gema ICMP.

userToken
Object

Objek yang diteruskan ke metode yang dipanggil ketika operasi asinkron selesai.

Pengecualian

hostNameOrAddress adalah null atau adalah string kosong ("").

timeout kurang dari nol.

Panggilan ke SendAsync sedang berlangsung.

Pengecualian dilemparkan saat mengirim atau menerima pesan ICMP. Lihat pengecualian dalam untuk pengecualian yang tepat yang dilemparkan.

hostNameOrAddress tidak dapat diatasi ke alamat IP yang valid.

Objek ini telah dibuang.

Contoh

Untuk contoh kode yang menunjukkan pemanggilan SendAsync metode, lihat Ping gambaran umum kelas.

Keterangan

Metode SendAsync mengirim pesan Echo secara asinkron dan, ketika operasi selesai (berhasil atau tidak berhasil), mengembalikan status ke aplikasi Anda. SendAsync Panggil metode ketika aplikasi Anda tidak boleh memblokir. Setiap panggilan dijalankan dalam utas terpisah yang secara otomatis dialokasikan dari kumpulan utas. Ketika operasi asinkron selesai, operasi akan menaikkan PingCompleted peristiwa. Aplikasi menggunakan PingCompletedEventHandler delegasi untuk menentukan metode yang dipanggil saat SendAsync menaikkan peristiwa. Anda harus menambahkan PingCompletedEventHandler delegasi ke acara sebelum memanggil SendAsync. Metode delegasi menerima PingCompletedEventArgs objek yang berisi PingReply objek yang menjelaskan hasil SendAsync panggilan. Objek PingCompletedEventArgs mewarisi UserState properti . Properti ini berisi objek yang userToken diteruskan ke SendAsync panggilan.

Jika aplikasi Anda harus memblokir saat menunggu balasan, gunakan Send metode ; metode ini sinkron.

Jika pesan balasan gema ICMP tidak diterima dalam waktu yang ditentukan oleh timeout parameter, gema ICMP gagal, dan Status properti diatur ke TimedOut.

Catatan

Ketika menentukan angka yang sangat kecil untuk timeout, balasan Ping dapat diterima meskipun timeout milidetik telah berlalu.

Kelebihan beban ini menggunakan pengaturan default untuk fragmentasi paket dan penerusan paket. Paket yang berisi pesan gema ICMP dapat terfragmentasi saat transit jika ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh. Untuk mencegah fragmentasi, gunakan salah SendAsync satu metode yang mengambil options parameter, dan atur properti ke DontFragmenttrue. Kapan DontFragment dan true ukuran paket total melebihi ukuran paket maksimum yang dapat ditransmisikan oleh salah satu simpul perutean antara komputer lokal dan jarak jauh, permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke PacketTooBig. Paket atau fragmen paket (jika terfragmentasi) dapat diteruskan dengan merutekan simpul 128 kali sebelum dibuang. Untuk mengubah pengaturan ini, gunakan SendAsync kelebihan beban yang mengambil options parameter, dan atur Ttl properti ke nilai yang diinginkan. Jika paket tidak mencapai tujuannya setelah diteruskan berapa kali yang ditentukan, paket dibuang dan permintaan gema ICMP gagal. Ketika ini terjadi, Status diatur ke TtlExpired.

Berlaku untuk