Sdílet prostřednictvím


Ping.Send Metoda

Definice

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 bufferje 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 timeoutzadá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

address
IPAddress

Určuje IPAddress počítač, který je cílem zprávy odezvy protokolu ICMP.

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 bufferje 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 timeoutlze 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 timeoutlze 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 timeoutlze 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 timeoutlze 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 timeoutlze 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.

Platí pro