Ping.Send 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í.
Pokusí se odeslat zprávu protokolu ICMP (Internet Control Message Protocol) do vzdáleného počítače a přijmout odpovídající zprávu odezvy PROTOKOLU ICMP ze vzdáleného počítače.
Přetížení
Send(String, TimeSpan, Byte[], PingOptions) |
Pokusí se 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. |
Send(String, Int32, Byte[], PingOptions) |
Pokusí se 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 PROTOKOLU ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a fragmentaci řízení a hodnoty Time-to-Live paketu ICMP. |
Send(IPAddress, TimeSpan, Byte[], PingOptions) |
Pokusí se odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) počítači, který má zadaný IPAddressparametr , a přijmout odpovídající zprávu odezvy PROTOKOLU ICMP z tohoto počítače. |
Send(IPAddress, Int32, Byte[], PingOptions) |
Pokusí se 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 odpověď 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 pro operaci a řízení fragmentace a hodnoty Time-to-Live pro paket zprávy odezvy ICMP. |
Send(String, Int32, Byte[]) |
Pokusí se 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 PROTOKOLU ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu operace. |
Send(IPAddress, Int32, Byte[]) |
Pokusí se 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 PROTOKOLU ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu operace. |
Send(String, Int32) |
Pokusí se 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. Tato metoda umožňuje zadat hodnotu časového limitu pro operaci. |
Send(IPAddress, Int32) |
Pokusí se 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 PROTOKOLU ICMP z tohoto počítače. Tato metoda umožňuje zadat hodnotu časového limitu pro operaci. |
Send(String) |
Pokusí se 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. |
Send(IPAddress) |
Pokusí se odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) počítači, který má zadaný IPAddressparametr , a přijmout odpovídající zprávu odezvy PROTOKOLU ICMP z tohoto počítače. |
Poznámky
IP adresa vrácená některým z Send přetížení může pocházet ze škodlivého vzdáleného počítače. 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.
Send(String, TimeSpan, Byte[], PingOptions)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se 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.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, TimeSpan timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, TimeSpan timeout, byte[]? buffer, System.Net.NetworkInformation.PingOptions? options);
member this.Send : string * TimeSpan * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As TimeSpan, buffer As Byte(), options As PingOptions) As PingReply
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
- TimeSpan
Hodnota, která určuje maximální dobu (po odeslání zprávy o odezvě) čekání na odpověď odezvy ICMP.
- buffer
- Byte[]
Pole Byte obsahující data, která mají být odeslána se zprávou odezvy 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 zprávy odezvy PROTOKOLU ICMP.
Návraty
Informace o zprávě odezvy ICMP, jestli byla přijata, nebo důvod selhání, pokud nebyla přijata žádná zpráva.
Výjimky
buffer
nebo hostNameOrAddress
je null
nebo hostNameOrAddress
je prázdný řetězec ("").
timeout
představuje čas menší než nula milisekund nebo větší než MaxValue milisekundy.
Velikost buffer
je větší než 65 500 bajtů.
Probíhá volání metody SendAsync.
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Podívejte se na vnitřní výjimku, kde najdete přesné znění výjimky, která byla vyvolán.
Tento objekt byl odstraněn.
Platí pro
Send(String, Int32, Byte[], PingOptions)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se 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 PROTOKOLU ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a fragmentaci řízení a hodnoty Time-to-Live paketu ICMP.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : string * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply
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.
- buffer
- Byte[]
Pole Byte obsahující data, která mají být odeslána se zprávou odezvy 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 zprávy odezvy PROTOKOLU ICMP.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo poskytuje důvod selhání, pokud nebyla přijata žádná zpráva.
Výjimky
Velikost je buffer
větší než 65 500 bajtů.
hostNameOrAddress
je null
nebo je řetězec nulové délky.
-nebo-
buffer
je null
.
Hodnota timeout
je menší než nula.
Probíhá volání SendAsync .
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Podívejte se na vnitřní výjimku, kde najdete přesné znění výjimky, která byla vyvolán.
Tento objekt byl odstraněn.
.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.
void ComplexPing()
{
Ping ^ pingSender = gcnew Ping;
// 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 request.
PingReply ^ reply = pingSender->Send( "www.contoso.com", timeout, buffer, options );
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 );
}
else
{
Console::WriteLine( reply->Status );
}
}
public static void ComplexPing ()
{
Ping pingSender = new Ping ();
// 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 request.
PingReply reply = pingSender.Send ("www.contoso.com", timeout, buffer, options);
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);
}
else
{
Console.WriteLine (reply.Status);
}
}
Poznámky
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.
DontFragment Pokud vlastnost je true
a celková velikost paketu překračuje 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.
Ttl Pomocí vlastnosti určete maximální počet přeposlání zprávy odezvy PROTOKOLU ICMP před dosažením cíle. 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.
Platí pro
Send(IPAddress, TimeSpan, Byte[], PingOptions)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) počítači, který má zadaný IPAddressparametr , a přijmout odpovídající zprávu odezvy PROTOKOLU ICMP z tohoto počítače.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, TimeSpan timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, TimeSpan timeout, byte[]? buffer, System.Net.NetworkInformation.PingOptions? options);
member this.Send : System.Net.IPAddress * TimeSpan * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As TimeSpan, buffer As Byte(), options As PingOptions) As PingReply
Parametry
- timeout
- TimeSpan
Hodnota, která určuje maximální dobu (po odeslání zprávy o odezvě) čekání na odpověď odezvy ICMP.
- buffer
- Byte[]
Pole Byte obsahující data, která mají být odeslána se zprávou odezvy 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 zprávy odezvy PROTOKOLU ICMP.
Návraty
Informace o zprávě odezvy ICMP, jestli byla přijata, nebo důvod selhání, pokud nebyla přijata žádná zpráva.
Výjimky
address
nebo buffer
je null
.
timeout
představuje čas menší než nula milisekund nebo větší než MaxValue milisekundy.
Velikost buffer
je větší než 65 500 bajtů.
Probíhá volání metody SendAsync.
Při odesílání nebo přijímání zpráv PROTOKOLU ICMP došlo k výjimce. Podívejte se na vnitřní výjimku, kde najdete přesné znění výjimky, která byla vyvolán.
Tento objekt byl odstraněn.
Platí pro
Send(IPAddress, Int32, Byte[], PingOptions)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se 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 obdrží 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:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer, System::Net::NetworkInformation::PingOptions ^ options);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions? options);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout, byte[] buffer, System.Net.NetworkInformation.PingOptions options);
member this.Send : System.Net.IPAddress * int * byte[] * System.Net.NetworkInformation.PingOptions -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte(), options As PingOptions) As PingReply
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.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo poskytuje důvod selhání, pokud nebyla přijata žádná zpráva. Metoda se vrátí PacketTooBig , pokud paket překročí maximální přenosovou jednotku (MTU).
Výjimky
Velikost je buffer
větší než 65 500 bajtů.
address
nebo buffer
je null
.
Hodnota timeout
je menší než nula.
Probíhá volání 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.
Tento objekt byl odstraněn.
.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.
void ComplexLocalPing()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
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 );
PingReply ^ reply = pingSender->Send( address, timeout, buffer, options );
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 );
}
else
{
Console::WriteLine( reply->Status );
}
}
public static void ComplexLocalPing ()
{
// Ping's the local machine.
Ping pingSender = new Ping ();
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);
PingReply reply = pingSender.Send (address, timeout, buffer, options);
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);
}
else
{
Console.WriteLine (reply.Status);
}
}
Poznámky
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
Send(String, Int32, Byte[])
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se 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:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout, byte[] buffer);
member this.Send : string * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer, buffer As Byte()) As PingReply
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ů.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo poskytuje důvod selhání, pokud nebyla přijata žádná zpráva.
Výjimky
Velikost buffer
překračuje 65500 bajtů.
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.
Tento objekt byl odstraněn.
.NET 7 a novější verze pouze v Linuxu: Proces není privilegovaný a buffer
není prázdný.
Příklady
Příklad, který ukazuje, jak volat Send přetížení, najdete v přehledu Ping třídy.
Poznámky
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase zadaném v parametru 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 Send 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 Send 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
Send(IPAddress, Int32, Byte[])
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí 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:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout, cli::array <System::Byte> ^ buffer);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout, byte[] buffer);
member this.Send : System.Net.IPAddress * int * byte[] -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer, buffer As Byte()) As PingReply
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ů.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo poskytuje důvod selhání, pokud nebyla přijata žádná zpráva. Metoda se vrátí PacketTooBig , pokud paket překročí maximální přenosovou jednotku (MTU).
Výjimky
Velikost buffer
překračuje 65500 bajtů.
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.
Tento objekt byl odstraněn.
.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.
void LocalPingTimeout()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
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;
PingReply ^ reply = pingSender->Send( address, timeout, buffer);
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 );
}
else
{
Console::WriteLine( reply->Status );
}
}
public static void LocalPingTimeout ()
{
// Ping's the local machine.
Ping pingSender = new Ping ();
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;
PingReply reply = pingSender.Send (address, timeout, buffer);
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);
}
else
{
Console.WriteLine (reply.Status);
}
}
Poznámky
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase zadaném v parametru 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 Send 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 Send 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
Send(String, Int32)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se 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. Tato metoda umožňuje zadat hodnotu časového limitu pro operaci.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress, int timeout);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress, int timeout);
member this.Send : string * int -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String, timeout As Integer) As PingReply
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.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo poskytuje důvod selhání, pokud nebyla přijata žádná zpráva.
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.
Tento objekt byl odstraněn.
Příklady
Příklad, který ukazuje volání Send metody, najdete v přehledu Ping třídy.
Poznámky
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase zadaném v parametru 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 Send 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 Send 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
Send(IPAddress, Int32)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se odeslat zprávu odezvy protokolu ICMP (Internet Control Message Protocol) se zadanou datovou vyrovnávací pamětí do počítače, který má zadanou IPAddresshodnotu , a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače. Tato metoda umožňuje zadat hodnotu časového limitu pro operaci.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address, int timeout);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address, int timeout);
member this.Send : System.Net.IPAddress * int -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress, timeout As Integer) As PingReply
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.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo poskytuje důvod selhání, pokud nebyla přijata žádná zpráva.
Výjimky
address
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.
Tento objekt byl odstraněn.
Příklady
Příklad, který ukazuje volání Send metody, najdete v přehledu Ping třídy.
Poznámky
Pokud se zpráva odpovědi na odezvu PROTOKOLU ICMP nepřijde v čase zadaném v parametru 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 Send 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 Send 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
Send(String)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se 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.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::String ^ hostNameOrAddress);
public System.Net.NetworkInformation.PingReply Send (string hostNameOrAddress);
member this.Send : string -> System.Net.NetworkInformation.PingReply
Public Function Send (hostNameOrAddress As String) As PingReply
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.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo poskytuje důvod selhání, pokud nebyla přijata žádná zpráva.
Výjimky
hostNameOrAddress
je null
nebo je prázdný řetězec ("").
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.
Tento objekt byl odstraněn.
Příklady
Následující příklad kódu ukazuje volání této metody.
void SimplePing()
{
Ping ^ pingSender = gcnew Ping;
PingReply ^ reply = pingSender->Send( "www.contoso.com" );
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 );
}
else
{
Console::WriteLine( reply->Status );
}
}
public static void SimplePing ()
{
Ping pingSender = new Ping ();
PingReply reply = pingSender.Send ("www.contoso.com");
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);
}
else
{
Console.WriteLine (reply.Status);
}
}
Poznámky
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 Send 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 Send 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
Send(IPAddress)
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
- Zdroj:
- Ping.cs
Pokusí se odeslat zprávu protokolu ICMP (Internet Control Message Protocol) echo do počítače, který má zadanou IPAddresshodnotu , a přijmout odpovídající zprávu odezvy ICMP z tohoto počítače.
public:
System::Net::NetworkInformation::PingReply ^ Send(System::Net::IPAddress ^ address);
public System.Net.NetworkInformation.PingReply Send (System.Net.IPAddress address);
member this.Send : System.Net.IPAddress -> System.Net.NetworkInformation.PingReply
Public Function Send (address As IPAddress) As PingReply
Parametry
- address
- IPAddress
Objekt IPAddress , který identifikuje počítač, který je cílem pro zprávu odezvy PROTOKOLU ICMP.
Návraty
Objekt PingReply , který poskytuje informace o zprávě odezvy ICMP, pokud byla přijata, nebo popisuje důvod selhání, pokud nebyla přijata žádná zpráva.
Výjimky
address
je null
.
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.
Tento objekt byl odstraněn.
Příklady
Následující příklad kódu ukazuje volání této metody.
void LocalPing()
{
// Ping's the local machine.
Ping ^ pingSender = gcnew Ping;
IPAddress^ address = IPAddress::Loopback;
PingReply ^ reply = pingSender->Send( address );
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 );
}
else
{
Console::WriteLine( reply->Status );
}
}
public static void LocalPing ()
{
// Ping's the local machine.
Ping pingSender = new Ping ();
IPAddress address = IPAddress.Loopback;
PingReply reply = pingSender.Send (address);
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);
}
else
{
Console.WriteLine (reply.Status);
}
}
Poznámky
Tato metoda odešle hostiteli, který je určen address
vyrovnávací pamětí 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 Send 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 Send 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.