Sdílet prostřednictvím


Ping.Send Metoda

Definice

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) vzdálenému počítači a obdrží odpovídající zprávu odpovědi ICMP ze vzdáleného počítače.

Přetížení

Name Description
Send(String, TimeSpan, Byte[], PingOptions)

Pokusí se odeslat zprávu o odezvě 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.

Send(String, Int32, Byte[], PingOptions)

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do zadaného počítače a obdrží odpovídající zprávu odpovědi ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a řídit fragmentaci a hodnoty Time-to-Live pro paket ICMP.

Send(IPAddress, TimeSpan, Byte[], PingOptions)

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) počítači se zadaným IPAddressprotokolem a přijmout odpovídající zprávu odpovědi ICMP z tohoto počítače.

Send(IPAddress, Int32, Byte[], PingOptions)

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do počítače, který má zadanou IPAddress zprávu a obdrží odpovídající zprávu odezvy ICMP z daného počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a řídit fragmentaci a hodnoty Time-to-Live pro paket zpráv odezvy ICMP.

Send(String, Int32, Byte[])

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do zadaného počítače a obdrží odpovídající zprávu odpovědi 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 o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do počítače, který má zadanou IPAddressodpověď , 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 operace.

Send(String, Int32)

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a obdrží odpovídající zprávu odpovědi ICMP z tohoto počítače. Tato metoda umožňuje zadat hodnotu časového limitu operace.

Send(IPAddress, Int32)

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do počítače, který má zadanou IPAddressodpověď , a obdrží odpovídající zprávu odezvy ICMP z tohoto počítače. Tato metoda umožňuje zadat hodnotu časového limitu operace.

Send(String)

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a obdrží odpovídající zprávu odpovědi ICMP z tohoto počítače.

Send(IPAddress)

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) počítači se zadaným IPAddresskódem a obdrží odpovídající zprávu odpovědi ICMP z tohoto počítače.

Poznámky

IP adresa vrácená některou z Send přetížení může pocházet ze vzdáleného počítače se zlými úmysly. Nepřipojit se ke vzdálenému počítači pomocí tohoto nastavení. 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
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě 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:
 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 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 ozvěny), která čeká na odpověď odezvy PROTOKOLU ICMP.

buffer
Byte[]

Pole Byte obsahující data, která mají být odeslána se zprávou odezvy ICMP a vrácenou ve zprávě odpovědi odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.

options
PingOptions

Objekt PingOptions sloužící k řízení fragmentace a hodnot Time-to-Live paketu s odezvou PROTOKOLU ICMP.

Návraty

Informace o zprávě odpovědi odezvy ICMP, pokud byla přijata, nebo důvod selhání, pokud nebyla přijata žádná zpráva.

Výjimky

buffernebo je nebo hostNameOrAddresshostNameOrAddress je null prázdný řetězec ("").

timeout představuje čas kratší 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říjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou výjimku, 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
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do zadaného počítače a obdrží odpovídající zprávu odpovědi ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a řídit fragmentaci a hodnoty Time-to-Live pro paket 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 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 echo) počkat na odpověď odezvy ICMP.

buffer
Byte[]

Pole Byte obsahující data, která mají být odeslána se zprávou odezvy ICMP a vrácenou ve zprávě odpovědi odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.

options
PingOptions

Objekt PingOptions sloužící k řízení fragmentace a hodnot Time-to-Live paketu s odezvou PROTOKOLU ICMP.

Návraty

Objekt PingReply , který poskytuje informace o zprávě odpovědi odezvy PROTOKOLU 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 ř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říjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou 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.

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 odpověď odezvy ICMP není přijata v době určené parametrem timeout , odezva ICMP selže a Status vlastnost je nastavena na TimedOut.

Poznámka:

Při zadávání velmi malých čísel pro timeoutodpověď Ping lze přijímat i v případě, že timeout uplynuly milisekundy.

DontFragment Pokud je true vlastnost a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu .

Ttl Pomocí vlastnosti určete maximální počet, kolikrát může být zpráva odezvy ICMP před dosažením cíle přeposlána. Pokud se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro

Send(IPAddress, TimeSpan, Byte[], PingOptions)

Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) počítači se zadaným IPAddressprotokolem a přijmout odpovídající zprávu odpovědi 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 ICMP.

timeout
TimeSpan

Hodnota, která určuje maximální dobu (po odeslání zprávy ozvěny), která čeká na odpověď odezvy PROTOKOLU ICMP.

buffer
Byte[]

Pole Byte obsahující data, která mají být odeslána se zprávou odezvy ICMP a vrácenou ve zprávě odpovědi odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.

options
PingOptions

Objekt PingOptions sloužící k řízení fragmentace a hodnot Time-to-Live paketu s odezvou PROTOKOLU ICMP.

Návraty

Informace o zprávě odpovědi odezvy ICMP, pokud 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 kratší 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říjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou výjimku, 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
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do počítače, který má zadanou IPAddress zprávu a obdrží odpovídající zprávu odezvy ICMP z daného počítače. Toto přetížení umožňuje zadat hodnotu časového limitu pro operaci a řídit fragmentaci a hodnoty Time-to-Live pro paket zpráv odezvy 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

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

timeout
Int32

Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy echo) počkat na odpověď odezvy ICMP.

buffer
Byte[]

Pole Byte obsahující data, která mají být odeslána se zprávou odezvy ICMP a vrácenou ve zprávě odpovědi odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.

options
PingOptions

Objekt PingOptions sloužící k řízení fragmentace a hodnot Time-to-Live paketu s odezvou PROTOKOLU ICMP.

Návraty

Objekt PingReply , který poskytuje informace o zprávě odpovědi 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í SendAsync .

Při odesílání nebo příjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou 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.

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 odpověď odezvy ICMP není přijata v době určené parametrem timeout , odezva ICMP selže a Status vlastnost je nastavena na TimedOut.

Poznámka:

Při zadávání velmi malých čísel pro timeoutodpověď Ping lze přijímat i v případě, že timeout uplynuly milisekundy.

DontFragment Pokud je true vlastnost a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu .

Ttl Pomocí vlastnosti určete maximální počet, kolikrát může být zpráva odezvy ICMP před dosažením cíle přeposlána. Pokud se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro

Send(String, Int32, Byte[])

Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do zadaného počítače a obdrží odpovídající zprávu odpovědi ICMP z tohoto počítače. Toto přetížení umožňuje zadat hodnotu časového limitu operace.

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 zprávy odezvy 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 echo) počkat na odpověď odezvy ICMP.

buffer
Byte[]

Pole Byte obsahující data, která mají být odeslána se zprávou odezvy ICMP a vrácenou ve zprávě odpovědi odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.

Návraty

Objekt PingReply , který poskytuje informace o zprávě odpovědi odezvy PROTOKOLU 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í SendAsync .

Při odesílání nebo příjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou 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í, viz Ping přehled třídy.

Poznámky

Pokud odpověď odezvy PROTOKOLU ICMP není přijata v době zadané v parametru timeout , odezva ICMP selže a Status vlastnost je nastavena na TimedOut.

Poznámka:

Při zadávání velmi malých čísel pro timeoutodpověď Ping lze přijímat i v případě, že 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, je možné během přenosu fragmentovat, pokud celková velikost paketu překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači. Chcete-li zabránit fragmentaci, použijte jednu z Send metod, která přebírá options parametr, a nastavte DontFragment vlastnost na true. Pokud DontFragment je true a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu .

Pakety nebo fragmenty paketů lze předávat směrovacími uzly 128krát předtím, 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 se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro

Send(IPAddress, Int32, Byte[])

Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do počítače, který má zadanou IPAddressodpověď , 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 operace.

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

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

timeout
Int32

Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy echo) počkat na odpověď odezvy ICMP.

buffer
Byte[]

Pole Byte obsahující data, která mají být odeslána se zprávou odezvy ICMP a vrácenou ve zprávě odpovědi odezvy ICMP. Pole nesmí obsahovat více než 65 500 bajtů.

Návraty

Objekt PingReply , který poskytuje informace o zprávě odpovědi 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í SendAsync .

Při odesílání nebo příjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou 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.

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 odpověď odezvy PROTOKOLU ICMP není přijata v době zadané v parametru timeout , odezva ICMP selže a Status vlastnost je nastavena na TimedOut.

Poznámka:

Při zadávání velmi malých čísel pro timeoutodpověď Ping lze přijímat i v případě, že 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, je možné během přenosu fragmentovat, pokud celková velikost paketu překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači. Chcete-li zabránit fragmentaci, použijte jednu z Send metod, která přebírá options parametr, a nastavte DontFragment vlastnost na true. Pokud DontFragment je true a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu .

Pakety nebo fragmenty paketů lze předávat směrovacími uzly 128krát předtím, 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 se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro

Send(String, Int32)

Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a obdrží odpovídající zprávu odpovědi ICMP z tohoto počítače. Tato metoda umožňuje zadat hodnotu časového limitu operace.

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 zprávy odezvy 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 echo) počkat na odpověď odezvy ICMP.

Návraty

Objekt PingReply , který poskytuje informace o zprávě odpovědi odezvy PROTOKOLU 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í SendAsync .

Při odesílání nebo příjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou výjimku, která byla vyvolán.

Tento objekt byl odstraněn.

Příklady

Příklad znázorňuje volání Send metody, viz Ping přehled třídy.

Poznámky

Pokud odpověď odezvy PROTOKOLU ICMP není přijata v době zadané v parametru timeout , odezva ICMP selže a Status vlastnost je nastavena na TimedOut.

Poznámka:

Při zadávání velmi malých čísel pro timeoutodpověď Ping lze přijímat i v případě, že 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, je možné během přenosu fragmentovat, pokud celková velikost paketu překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači. Chcete-li zabránit fragmentaci, použijte jednu z Send metod, která přebírá options parametr, a nastavte DontFragment vlastnost na true. Pokud DontFragment je true a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu . Pakety nebo fragmenty paketů (pokud jsou fragmentované) je možné předávat 128krát před zahozením směrovacích uzlů. 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 se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro

Send(IPAddress, Int32)

Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) se zadanou vyrovnávací pamětí dat do počítače, který má zadanou IPAddressodpověď , a obdrží odpovídající zprávu odezvy ICMP z tohoto počítače. Tato metoda umožňuje zadat hodnotu časového limitu operace.

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

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

timeout
Int32

Hodnota Int32 , která určuje maximální počet milisekund (po odeslání zprávy echo) počkat na odpověď odezvy ICMP.

Návraty

Objekt PingReply , který poskytuje informace o zprávě odpovědi odezvy PROTOKOLU 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í SendAsync .

Při odesílání nebo příjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou výjimku, která byla vyvolán.

Tento objekt byl odstraněn.

Příklady

Příklad znázorňuje volání Send metody, viz Ping přehled třídy.

Poznámky

Pokud odpověď odezvy PROTOKOLU ICMP není přijata v době zadané v parametru timeout , odezva ICMP selže a Status vlastnost je nastavena na TimedOut.

Poznámka:

Při zadávání velmi malých čísel pro timeoutodpověď Ping lze přijímat i v případě, že 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, je možné během přenosu fragmentovat, pokud celková velikost paketu překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači. Chcete-li zabránit fragmentaci, použijte jednu z Send metod, která přebírá options parametr, a nastavte DontFragment vlastnost na true. Pokud DontFragment je true a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu .

Pakety nebo fragmenty paketů lze předávat směrovacími uzly 128krát předtím, 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 se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro

Send(String)

Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) do zadaného počítače a obdrží odpovídající zprávu odpovědi 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 zprávy odezvy 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ě odpovědi 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í SendAsync .

Při odesílání nebo příjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou 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.

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 32 Byte datovou vyrovnávací paměť se zprávou odezvy ICMP. Metoda čeká pět sekund na zprávu odpovědi odezvy ICMP. Pokud v této době neobdrží odpověď, metoda vrátí 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 odezvy PROTOKOLU ICMP, je možné během přenosu fragmentovat, pokud celková velikost paketu překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači. Chcete-li zabránit fragmentaci, použijte jednu z Send metod, která přebírá options parametr, a nastavte DontFragment vlastnost na true. Pokud DontFragment je true a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu . Pakety nebo fragmenty paketů (pokud jsou fragmentované) je možné předávat 128krát před zahozením směrovacích uzlů. 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 se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro

Send(IPAddress)

Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs
Zdroj:
Ping.cs

Pokusí se odeslat zprávu o odezvě protokolu ICMP (Internet Control Message Protocol) počítači se zadaným IPAddresskódem a obdrží odpovídající zprávu odpovědi 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

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

Návraty

Objekt PingReply , který poskytuje informace o zprávě odpovědi 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í SendAsync .

Při odesílání nebo příjmu zpráv ICMP došlo k výjimce. Podívejte se na vnitřní výjimku pro přesnou 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.

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í 32 Byte dat se zprávou odezvy ICMP. Metoda čeká pět sekund na zprávu odpovědi odezvy ICMP. Pokud v této době neobdrží odpověď, metoda vrátí 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 odezvy PROTOKOLU ICMP, je možné během přenosu fragmentovat, pokud celková velikost paketu překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači. Chcete-li zabránit fragmentaci, použijte jednu z Send metod, která přebírá options parametr, a nastavte DontFragment vlastnost na true. Pokud DontFragment je true a celková velikost paketů překračuje maximální velikost paketu, kterou může přenášet jeden z uzlů směrování mezi místními a vzdálenými počítači, požadavek na odezvu ICMP selže. V takovém případě je nastavena Status na PacketTooBighodnotu . Pakety nebo fragmenty paketů (pokud jsou fragmentované) je možné předávat 128krát před zahozením směrovacích uzlů. 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 se paket po předání zadaného počtu nedosáhne do cíle, paket se zahodí a požadavek na odezvu PROTOKOLU ICMP selže. V takovém případě je nastavena Status na TtlExpiredhodnotu .

Platí pro