Ping.SendAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) do počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače.
Přetížení
SendAsync(String, Int32, Byte[], PingOptions, Object) |
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do zadaného počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a kontrolu fragmentace a hodnoty Time-to-Live paketu ICMP. |
SendAsync(IPAddress, Int32, Byte[], PingOptions, Object) |
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do počítače, který má zadanou IPAddress, a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a kontrolu fragmentace a hodnoty Time-to-Live pro paket ozvěny ICMP. |
SendAsync(String, Int32, Byte[], Object) |
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do zadaného počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci. |
SendAsync(IPAddress, Int32, Byte[], Object) |
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do počítače, který má zadanou IPAddress, a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci. |
SendAsync(IPAddress, Int32, Object) |
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) do počítače, který má zadanou IPAddresshodnotu , a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci. |
SendAsync(String, Object) |
Asynchronně se pokusí odeslat zprávu protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. |
SendAsync(IPAddress, Object) |
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) do počítače, který má zadanou IPAddresshodnotu , a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. |
SendAsync(String, Int32, Object) |
Asynchronně se pokusí odeslat zprávu protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci. |
Poznámky
Tyto metody nezpůsobí blokování hlavního vlákna aplikace. Pokud chcete blokovat při čekání na odpověď na zprávu odezvy ICMP, použijte Send metody .
Poznámka
IP adresa vrácená některou z SendAsync metod může pocházet ze vzdáleného počítače se zlými úmysly. Pomocí tohoto příkazu se nepřipojíte ke vzdálenému počítači. Pomocí DNS určete IP adresu počítače, ke kterému se chcete připojit.
SendAsync(String, Int32, Byte[], PingOptions, Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do zadaného počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a kontrolu fragmentace a hodnoty Time-to-Live paketu 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)
Parametry
- hostNameOrAddress
- String
A String , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP. Hodnota zadaná pro tento parametr může být název hostitele nebo řetězcová reprezentace IP adresy.
- timeout
- Int32
Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy o odezvě) pro čekání na odpověď odezvy ICMP.
- buffer
- Byte[]
Pole Byte obsahující data, která mají být odeslána se zprávou odezvy PROTOKOLU ICMP a vrácena ve zprávě odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.
- options
- PingOptions
Objekt PingOptions sloužící k řízení fragmentace a hodnoty Time-to-Live paketu odezvy ICMP.
- userToken
- Object
Objekt, který je předán metodě vyvolány při dokončení asynchronní operace.
Výjimky
hostNameOrAddress
je null
nebo je prázdný řetězec ("").
-nebo-
buffer
je null
.
Hodnota timeout
je menší než nula.
Probíhá volání do SendAsync .
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
hostNameOrAddress
nelze přeložit na platnou IP adresu.
Tento objekt byl odstraněn.
Velikost buffer
překračuje 65500 bajtů.
.NET 7 a novější verze pouze v Linuxu: Proces není privilegovaný a buffer
není prázdný.
Příklady
Následující příklad kódu ukazuje, jak volat tuto metodu.
#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);
}
}
}
}
Poznámky
Metoda SendAsync odešle zprávu Echo asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu, SendAsync když vaše aplikace nesmí blokovat. Každé volání se provádí v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost. Aplikace používají delegáta PingCompletedEventHandler k určení metody, která se volá při SendAsync vyvolání události. Před voláním PingCompletedEventHandlerSendAsyncmusíte k události přidat delegáta . Metoda delegáta přijme PingCompletedEventArgs objekt, který obsahuje PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs zdědí UserState vlastnost. Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Pokud by vaše aplikace měla blokovat při čekání na odpověď, použijte Send metody. Tyto metody jsou synchronní.
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase určeném parametrem timeout
, odezva PROTOKOLU ICMP selže a Status vlastnost je nastavena na TimedOut.
Poznámka
Při zadávání velmi malých čísel pro timeout
lze odpověď ping obdržet i po timeout
uplynutí milisekund.
DontFragment Pokud vlastnost je true
a celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na PacketTooBig.
Ttl Vlastnost použijte k určení maximálního počtu, kolikrát může být zpráva odezvy ICMP přeposlána před dosažením cíle. Pokud paket nedorazí do cíle po přeposílání zadaného počtu, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na TtlExpired.
Platí pro
SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do počítače, který má zadanou IPAddress, a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a kontrolu fragmentace a hodnoty Time-to-Live pro paket ozvěny 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)
Parametry
- address
- IPAddress
Objekt IPAddress , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP.
- timeout
- Int32
Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy o odezvě) pro čekání na odpověď odezvy ICMP.
- buffer
- Byte[]
Pole Byte obsahující data, která mají být odeslána se zprávou odezvy PROTOKOLU ICMP a vrácena ve zprávě odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.
- options
- PingOptions
Objekt PingOptions sloužící k řízení fragmentace a hodnoty Time-to-Live paketu odezvy ICMP.
- userToken
- Object
Objekt, který je předán metodě vyvolány při dokončení asynchronní operace.
Výjimky
address
nebo buffer
je null
.
Hodnota timeout
je menší než nula.
Probíhá volání do SendAsync .
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
address
není platná IP adresa.
Tento objekt byl odstraněn.
Velikost buffer
překračuje 65500 bajtů.
.NET 7 a novější verze pouze v Linuxu: Proces není privilegovaný a buffer
není prázdný.
Příklady
Následující příklad kódu ukazuje, jak volat tuto metodu. Implementaci metody zpětného volání najdete v ukázkové SendAsync části přetížení metody.
Následující příklad kódu vyžaduje následující obory názvů:
#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;
Následující příklad kódu odešle asynchronně zprávu odezvy PROTOKOLU ICMP.
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.");
}
Poznámky
Metoda SendAsync odešle zprávu Echo asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu, SendAsync když vaše aplikace nesmí blokovat. Každé volání se provádí v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost. Aplikace používají delegáta PingCompletedEventHandler k určení metody, která se volá při SendAsync vyvolání události. Před voláním PingCompletedEventHandlerSendAsyncmusíte k události přidat delegáta . Metoda delegáta přijme PingCompletedEventArgs objekt, který obsahuje PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs zdědí UserState vlastnost. Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Pokud vaše aplikace blokuje při čekání na odpověď, použijte Send metody. Tyto metody jsou synchronní.
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase určeném parametrem timeout
, odezva PROTOKOLU ICMP selže a Status vlastnost je nastavena na TimedOut.
Poznámka
Při zadávání velmi malých čísel pro timeout
lze odpověď ping obdržet i po timeout
uplynutí milisekund.
DontFragment Pokud vlastnost je true
a celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na PacketTooBig.
Ttl Vlastnost použijte k určení maximálního počtu, kolikrát může být zpráva odezvy ICMP přeposlána před dosažením cíle. Pokud paket nedorazí do cíle po přeposílání zadaného počtu, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na TtlExpired.
Platí pro
SendAsync(String, Int32, Byte[], Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do zadaného počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci.
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)
Parametry
- hostNameOrAddress
- String
A String , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP. Hodnota zadaná pro tento parametr může být název hostitele nebo řetězcová reprezentace IP adresy.
- timeout
- Int32
Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy o odezvě) pro čekání na odpověď odezvy ICMP.
- buffer
- Byte[]
Pole Byte obsahující data, která mají být odeslána se zprávou odezvy PROTOKOLU ICMP a vrácena ve zprávě odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.
- userToken
- Object
Objekt, který je předán metodě vyvolány při dokončení asynchronní operace.
Výjimky
hostNameOrAddress
je null
nebo je prázdný řetězec ("").
-nebo-
buffer
je null
.
Hodnota timeout
je menší než nula.
Probíhá volání do SendAsync .
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
hostNameOrAddress
nelze přeložit na platnou IP adresu.
Tento objekt byl odstraněn.
Velikost buffer
překračuje 65500 bajtů.
.NET 7 a novější verze pouze v Linuxu: Proces není privilegovaný a buffer
není prázdný.
Příklady
Následující příklad kódu ukazuje, jak volat SendAsync přetížení, viz Ping přehled třídy.
Poznámky
Metoda SendAsync odešle zprávu Echo asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu, SendAsync pokud by vaše aplikace neměla blokovat. Každé volání se provádí v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost. Aplikace používají delegáta PingCompletedEventHandler k určení metody, která se volá při SendAsync vyvolání události. Před voláním PingCompletedEventHandlerSendAsyncmusíte k události přidat delegáta . Metoda delegáta přijme PingCompletedEventArgs objekt obsahující PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs zdědí UserState vlastnost. Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Pokud by vaše aplikace měla blokovat při čekání na odpověď, použijte Send metody. Tyto metody jsou synchronní.
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase určeném parametrem timeout
, odezva PROTOKOLU ICMP selže a Status vlastnost je nastavena na TimedOut.
Poznámka
Při zadávání velmi malých čísel pro timeout
lze odpověď ping obdržet i po timeout
uplynutí milisekund.
Toto přetížení používá výchozí nastavení pro fragmentaci paketů a předávání paketů. Paket, který obsahuje zprávu o odezvě protokolu ICMP, může být během přenosu fragmentován, pokud celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem. Pokud chcete zabránit fragmentaci, použijte jednu z SendAsync metod, která přebírá options
parametr, a nastavte DontFragment vlastnost na true
.
true
Pokud DontFragment je a celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na PacketTooBig. Pakety nebo fragmenty paketů (pokud jsou fragmentované) se dají směrovacími uzly před zahozením předat 128krát. Chcete-li toto nastavení změnit, použijte SendAsync přetížení, které přebírá options
parametr, a nastavte Ttl vlastnost na požadovanou hodnotu. Pokud paket nedorazí do cíle po přeposílání zadaného počtu, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na TtlExpired.
Platí pro
SendAsync(IPAddress, Int32, Byte[], Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do počítače, který má zadanou IPAddress, a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci.
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)
Parametry
- address
- IPAddress
Objekt IPAddress , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP.
- timeout
- Int32
Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy o odezvě) pro čekání na odpověď odezvy ICMP.
- buffer
- Byte[]
Pole Byte obsahující data, která mají být odeslána se zprávou odezvy PROTOKOLU ICMP a vrácena ve zprávě odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.
- userToken
- Object
Objekt, který je předán metodě vyvolány při dokončení asynchronní operace.
Výjimky
address
nebo buffer
je null
.
Hodnota timeout
je menší než nula.
Probíhá volání do SendAsync .
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
address
není platná IP adresa.
Tento objekt byl odstraněn.
Velikost buffer
překračuje 65500 bajtů.
.NET 7 a novější verze pouze v Linuxu: Proces není privilegovaný a buffer
není prázdný.
Příklady
Příklad kódu, který ukazuje volání SendAsync přetížení, najdete v přehledu Ping třídy.
Poznámky
Tato metoda odešle zprávu o odezvě asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu, SendAsync pokud by vaše aplikace neměla blokovat. Každé volání se provádí v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost. Pokud chcete určit metodu, která se volá při SendAsync vyvolání události, musíte před voláním PingCompletedEventHandlerSendAsyncpřidat delegáta k události . Metoda delegáta přijme PingCompletedEventArgs objekt, který obsahuje PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs zdědí UserState vlastnost. Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Poznámka
Pokud vaše aplikace blokuje při čekání na odpověď, použijte Send metody. Tyto metody jsou synchronní.
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase určeném parametrem timeout
, odezva PROTOKOLU ICMP selže a Status vlastnost je nastavena na TimedOut.
Poznámka
Při zadávání velmi malých čísel pro timeout
lze odpověď ping obdržet i po timeout
uplynutí milisekund.
Toto přetížení používá výchozí nastavení pro fragmentaci paketů a předávání paketů. Paket, který obsahuje zprávu o odezvě protokolu ICMP, může být během přenosu fragmentován, pokud celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem. Pokud chcete zabránit fragmentaci, použijte jednu z SendAsync metod, která přebírá options
parametr, a nastavte DontFragment vlastnost na true
.
true
Pokud DontFragment je a celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na PacketTooBig. Pakety nebo fragmenty paketů (pokud jsou fragmentované) se dají směrovacími uzly před zahozením předat 128krát. Chcete-li toto nastavení změnit, použijte SendAsync přetížení, které přebírá options
parametr, a nastavte Ttl vlastnost na požadovanou hodnotu. Pokud paket nedorazí do cíle po přeposílání zadaného počtu, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na TtlExpired.
Platí pro
SendAsync(IPAddress, Int32, Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) do počítače, který má zadanou IPAddresshodnotu , a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci.
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)
Parametry
- address
- IPAddress
Objekt IPAddress , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP.
- timeout
- Int32
Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy o odezvě) pro čekání na odpověď odezvy ICMP.
- userToken
- Object
Objekt, který je předán metodě vyvolány při dokončení asynchronní operace.
Výjimky
address
je null
.
Hodnota timeout
je menší než nula.
Probíhá volání SendAsync(IPAddress, Int32, Byte[], Object) metody.
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
address
není platná IP adresa.
Tento objekt byl odstraněn.
Příklady
Příklad kódu, který ukazuje volání SendAsync přetížení, najdete v přehledu Ping třídy.
Poznámky
Metoda SendAsync odešle zprávu Echo asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu, SendAsync pokud by vaše aplikace neměla blokovat. Každé volání se provádí v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost. Aplikace používají delegáta PingCompletedEventHandler k určení metody, která se volá při SendAsync vyvolání události. Před voláním PingCompletedEventHandlerSendAsyncmusíte k události přidat delegáta . Metoda delegáta přijme PingCompletedEventArgs objekt, který obsahuje PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs zdědí UserState vlastnost. Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Pokud by vaše aplikace měla blokovat při čekání na odpověď, použijte Send metody. Tyto metody jsou synchronní.
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase určeném parametrem timeout
, odezva PROTOKOLU ICMP selže a Status vlastnost je nastavena na TimedOut.
Poznámka
Při zadávání velmi malých čísel pro timeout
lze odpověď ping obdržet i po timeout
uplynutí milisekund.
Toto přetížení používá výchozí nastavení pro fragmentaci paketů a předávání paketů. Paket, který obsahuje zprávu o odezvě protokolu ICMP, může být během přenosu fragmentován, pokud celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem. Pokud chcete zabránit fragmentaci, použijte jednu z SendAsync metod, která přebírá options
parametr, a nastavte DontFragment vlastnost na true
.
true
Pokud DontFragment je a celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na PacketTooBig. Pakety nebo fragmenty paketů (pokud jsou fragmentované) se dají směrovacími uzly před zahozením předat 128krát. Chcete-li toto nastavení změnit, použijte SendAsync přetížení, které přebírá options
parametr, a nastavte Ttl vlastnost na požadovanou hodnotu. Pokud paket nedorazí do cíle po přeposílání zadaného počtu, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na TtlExpired.
Platí pro
SendAsync(String, Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače.
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)
Parametry
- hostNameOrAddress
- String
A String , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP. Hodnota zadaná pro tento parametr může být název hostitele nebo řetězcová reprezentace IP adresy.
- userToken
- Object
Objekt, který je předán metodě vyvolány při dokončení asynchronní operace.
Výjimky
hostNameOrAddress
je null
nebo je prázdný řetězec ("").
Probíhá volání SendAsync(String, Object) metody.
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
hostNameOrAddress
nelze přeložit na platnou IP adresu.
Tento objekt byl odstraněn.
Příklady
Příklad kódu, který ukazuje volání SendAsync metody, najdete v přehledu Ping třídy.
Poznámky
Metoda SendAsync odešle zprávu o odezvě asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu, SendAsync pokud by vaše aplikace neměla blokovat. Každé volání této metody se provede v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost. Pokud chcete určit metodu, která se volá při SendAsync vyvolání události, musíte před voláním PingCompletedEventHandlerSendAsyncpřidat delegáta k události . Metoda delegáta přijme PingCompletedEventArgs objekt, který obsahuje PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs zdědí UserState vlastnost. Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Poznámka
Pokud by vaše aplikace měla blokovat při čekání na odpověď, použijte Send metody. Tyto metody jsou synchronní.
Tato metoda odešle vyrovnávací paměť dat 32 Byte se zprávou odezvy PROTOKOLU ICMP. Metoda počká pět sekund na odpověď icmp echo. Pokud v této době neobdrží odpověď, vrátí se metoda a Status vlastnost je nastavena na TimedOut.
Toto přetížení používá výchozí nastavení pro fragmentaci paketů a předávání paketů. Paket, který obsahuje zprávu o odezvě protokolu ICMP, může být během přenosu fragmentován, pokud celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem. Pokud chcete zabránit fragmentaci, použijte jednu z SendAsync metod, která přebírá options
parametr, a nastavte DontFragment vlastnost na true
.
true
Pokud DontFragment je a celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na PacketTooBig.
Pakety nebo fragmenty paketů lze směrovacími uzly předat 128krát, než se zahodí. Chcete-li toto nastavení změnit, použijte SendAsync přetížení, které přebírá options
parametr, a nastavte Ttl vlastnost na požadovanou hodnotu. Pokud paket nedorazí do cíle po přeposílání zadaného počtu, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na TtlExpired.
Platí pro
SendAsync(IPAddress, Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) do počítače, který má zadanou IPAddresshodnotu , a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače.
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)
Parametry
- address
- IPAddress
Objekt IPAddress , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP.
- userToken
- Object
Objekt, který je předán metodě vyvolány při dokončení asynchronní operace.
Výjimky
address
je null
.
Probíhá volání SendAsync metody.
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
address
není platná IP adresa.
Tento objekt byl odstraněn.
Příklady
Příklad kódu, který ukazuje volání SendAsync metody, najdete v přehledu Ping třídy.
Poznámky
Metoda SendAsync odešle zprávu o odezvě asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu, SendAsync pokud by vaše aplikace neměla blokovat. Každé volání této metody se provede v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost. Pokud chcete určit metodu, která se volá při SendAsync vyvolání události, musíte před voláním PingCompletedEventHandlerSendAsyncpřidat delegáta k události . Metoda delegáta přijme PingCompletedEventArgs objekt, který obsahuje PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs zdědí UserState vlastnost. Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Poznámka
Pokud by vaše aplikace měla blokovat při čekání na odpověď, použijte jednu z Send metod. Tyto metody jsou synchronní.
Tato metoda odešle vyrovnávací paměť dat 32 Byte se zprávou odezvy PROTOKOLU ICMP. Metoda počká pět sekund na odpověď icmp echo. Pokud v této době neobdrží odpověď, vrátí se metoda a Status vlastnost je nastavena na TimedOut.
Toto přetížení používá výchozí nastavení pro fragmentaci paketů a předávání paketů. Paket, který obsahuje zprávu o odezvě protokolu ICMP, může být během přenosu fragmentován, pokud celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem. Pokud chcete zabránit fragmentaci, použijte jednu z SendAsync metod, která přebírá options
parametr, a nastavte DontFragment vlastnost na true
.
true
Pokud DontFragment je a celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na PacketTooBig.
Pakety nebo fragmenty paketů lze směrovacími uzly předat 128krát, než se zahodí. Chcete-li toto nastavení změnit, použijte SendAsync přetížení, které přebírá options
parametr, a nastavte Ttl vlastnost na požadovanou hodnotu. Pokud paket nedorazí do cíle po přeposílání zadaného počtu, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. Když k tomu dojde, Status nastaví se hodnota na TtlExpired.
Platí pro
SendAsync(String, Int32, Object)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Asynchronně se pokusí odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a přijmout odpovídající zprávu odezvy PROTOKOLU ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu operace.
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)
Parametry
- hostNameOrAddress
- String
A String , který identifikuje počítač, který je cílem zprávy odezvy protokolu ICMP. Hodnota zadaná pro tento parametr může být název hostitele nebo řetězcová reprezentace IP adresy.
- timeout
- Int32
Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy o odezvě), aby se čekalo na odpověď na zprávu odezvy PROTOKOLU ICMP.
- userToken
- Object
Objekt, který je předán metodě vyvolána při dokončení asynchronní operace.
Výjimky
hostNameOrAddress
je null
nebo je prázdný řetězec ("").
Hodnota timeout
je menší než nula.
Probíhá volání do SendAsync .
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Projděte si vnitřní výjimku pro konkrétní výjimku, která byla vyvolán.
hostNameOrAddress
nelze přeložit na platnou IP adresu.
Tento objekt byl odstraněn.
Příklady
Příklad kódu, který ukazuje volání SendAsync metody, najdete v přehledu Ping třídy.
Poznámky
Metoda SendAsync odesílá zprávu Echo asynchronně a po dokončení operace (úspěšně nebo neúspěšně) vrátí stav vaší aplikaci. Volejte metodu , SendAsync když by vaše aplikace neměla blokovat. Každé volání se spustí v samostatném vlákně, které je automaticky přiděleno z fondu vláken. Po dokončení asynchronní operace vyvolá PingCompleted událost . Aplikace používají delegáta PingCompletedEventHandler k určení metody, která je volána při SendAsync vyvolání události. Před voláním PingCompletedEventHandlerSendAsyncpříkazu musíte do události přidat delegáta . Metoda delegáta obdrží PingCompletedEventArgs objekt, který obsahuje PingReply objekt, který popisuje výsledek SendAsync volání. Objekt PingCompletedEventArgs dědí UserState vlastnost . Tato vlastnost obsahuje userToken
objekt předaný do SendAsync volání.
Pokud by vaše aplikace měla při čekání na odpověď blokovat, použijte Send metody . Tyto metody jsou synchronní.
Pokud zpráva odpovědi na odezvu PROTOKOLU ICMP není přijata v čase určeném parametrem timeout
, odezva protokolu ICMP selže a Status vlastnost je nastavena na TimedOuthodnotu .
Poznámka
Pokud pro timeout
zadáte velmi malá čísla, může být odpověď ping přijata, i když timeout
uplynuly milisekundy.
Toto přetížení používá výchozí nastavení pro fragmentaci paketů a předávání paketů. Paket, který obsahuje zprávu odezvy PROTOKOLU ICMP, může být během přenosu fragmentován, pokud celková velikost paketu překročí maximální velikost paketu, kterou může jeden ze směrovacích uzlů přenést mezi místním a vzdáleným počítačem. Pokud chcete zabránit fragmentaci, použijte jednu z SendAsync metod, která přebírá options
parametr, a nastavte DontFragment vlastnost na true
. Když DontFragment hodnota a true
celková velikost paketu překročí maximální velikost paketu, kterou může přenášet jeden ze směrovacích uzlů mezi místním a vzdáleným počítačem, požadavek na odezvu protokolu ICMP selže. Když k tomu dojde, Status nastaví se na PacketTooBig. Pakety nebo fragmenty paketů (pokud jsou fragmentované) můžou směrovací uzly před zahozením předat 128krát. Chcete-li toto nastavení změnit, použijte SendAsync přetížení, které přebírá options
parametr, a nastavte Ttl vlastnost na požadovanou hodnotu. Pokud se paket po předání zadaného počtukrát nedorazí do cíle, paket se zahodí a požadavek na odezvu ICMP selže. Když k tomu dojde, Status nastaví se na TtlExpired.