Ping.Send Metoda

Definicja

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do komputera zdalnego i odebrać odpowiedni komunikat odpowiedzi echa ICMP z komputera zdalnego.

Przeciążenia

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

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do określonego komputera i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

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

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do określonego komputera i otrzymać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji i kontroli fragmentacji oraz wartości Time-to-Live pakietu ICMP.

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

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do komputera, który ma określony IPAddresselement , i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

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

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do komputera, który ma określony IPAddress i odbiera odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji i fragmentacji kontrolki oraz wartości Time-to-Live dla pakietu komunikatu echa ICMP.

Send(String, Int32, Byte[])

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do określonego komputera i otrzymać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji.

Send(IPAddress, Int32, Byte[])

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do komputera, który ma określony IPAddresselement , i otrzyma odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji.

Send(String, Int32)

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do określonego komputera i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. Ta metoda umożliwia określenie wartości limitu czasu dla operacji.

Send(IPAddress, Int32)

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do komputera, który ma określony IPAddresselement , i otrzyma odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. Ta metoda umożliwia określenie wartości limitu czasu dla operacji.

Send(String)

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do określonego komputera i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

Send(IPAddress)

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do komputera, który ma określony IPAddresselement , i otrzyma odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

Uwagi

Adres IP zwrócony przez dowolne Send przeciążenia może pochodzić ze złośliwego komputera zdalnego. Nie należy łączyć się z komputerem zdalnym przy użyciu tego polecenia. Użyj systemu DNS, aby określić adres IP maszyny, z którą chcesz nawiązać połączenie.

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

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do określonego komputera i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

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

Element String identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP. Wartość określona dla tego parametru może być nazwą hosta lub ciągiem reprezentującym adres IP.

timeout
TimeSpan

Wartość określająca maksymalny czas (po wysłaniu wiadomości e-mail) do oczekiwania na komunikat odpowiedzi echa ICMP.

buffer
Byte[]

Tablica zawierająca Byte dane do wysłania z komunikatem echa ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.

options
PingOptions

PingOptions Obiekt służący do kontrolowania fragmentacji i wartości time-to-Live dla pakietu komunikatów echa ICMP.

Zwraca

Informacje o komunikacie odpowiedzi echa ICMP, jeśli został on odebrany lub przyczyna błędu, jeśli nie odebrano komunikatu.

Wyjątki

buffer lub hostNameOrAddress jest nullhostNameOrAddress ciągiem pustym ("").

timeout reprezentuje czas krótszy niż zero milisekund lub większy niż MaxValue milisekundy.

Rozmiar bufferelementu jest większy niż 65 500 bajtów.

Trwa wywołanie funkcji SendAsync.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

Dotyczy

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

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do określonego komputera i otrzymać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji i kontroli fragmentacji oraz wartości Time-to-Live pakietu 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

Element String identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP. Wartość określona dla tego parametru może być nazwą hosta lub ciągiem reprezentującym adres IP.

timeout
Int32

Int32 Wartość określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa) w celu oczekiwania na komunikat odpowiedzi echa ICMP.

buffer
Byte[]

Tablica zawierająca Byte dane do wysłania z komunikatem echa ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.

options
PingOptions

PingOptions Obiekt służący do kontrolowania fragmentacji i wartości time-to-Live dla pakietu komunikatów echa ICMP.

Zwraca

PingReply Obiekt, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę niepowodzenia, jeśli komunikat nie został odebrany.

Wyjątki

Rozmiar buffer przekracza 65500 bajtów.

hostNameOrAddress jest null ciągiem o zerowej długości.

-lub-

buffer to null.

Parametr timeout ma wartość niższą niż zero.

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

.NET 7 i nowsze wersje tylko w systemie Linux: proces jest nieuprzywilejowany i buffer nie jest pusty.

Przykłady

W poniższym przykładzie kodu pokazano, jak wywołać tę metodę.

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

Uwagi

Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym przez timeout parametr, echo ICMP zakończy się niepowodzeniem, a Status właściwość ma wartość TimedOut.

Uwaga

Podczas określania bardzo małych liczb dla timeoutpolecenia można odebrać odpowiedź ping, nawet jeśli timeout upłynął czas milisekund.

DontFragment Jeśli właściwość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość .

Ttl Użyj właściwości , aby określić maksymalną liczbę przypadków przekazywania komunikatu echa ICMP przed dotarciem do miejsca docelowego. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy

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

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do komputera, który ma określony IPAddresselement , i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

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

Element IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.

timeout
TimeSpan

Wartość określająca maksymalny czas (po wysłaniu wiadomości e-mail) do oczekiwania na komunikat odpowiedzi echa ICMP.

buffer
Byte[]

Tablica zawierająca Byte dane do wysłania z komunikatem echa ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.

options
PingOptions

PingOptions Obiekt służący do kontrolowania fragmentacji i wartości time-to-Live dla pakietu komunikatów echa ICMP.

Zwraca

Informacje o komunikacie odpowiedzi echa ICMP, jeśli został on odebrany lub przyczyna błędu, jeśli nie odebrano komunikatu.

Wyjątki

address lub buffer ma wartość null.

timeout reprezentuje czas krótszy niż zero milisekund lub większy niż MaxValue milisekundy.

Rozmiar bufferelementu jest większy niż 65 500 bajtów.

Trwa wywołanie funkcji SendAsync.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

Dotyczy

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

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do komputera, który ma określony IPAddress i odbiera odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji i fragmentacji kontrolki oraz wartości Time-to-Live dla pakietu komunikatu echa 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

Element IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.

timeout
Int32

Int32 Wartość określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa) w celu oczekiwania na komunikat odpowiedzi echa ICMP.

buffer
Byte[]

Tablica zawierająca Byte dane do wysłania z komunikatem echa ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.

options
PingOptions

PingOptions Obiekt służący do kontrolowania fragmentacji i wartości time-to-Live dla pakietu komunikatów echa ICMP.

Zwraca

PingReply Obiekt, który dostarcza informacje o wiadomości odpowiedzi echa ICMP, jeśli został odebrany lub podaje przyczynę błędu, jeśli nie odebrano komunikatu. Metoda zwróci PacketTooBig wartość , jeśli pakiet przekracza maksymalną jednostkę transmisji (MTU).

Wyjątki

Rozmiar buffer przekracza 65500 bajtów.

address lub buffer ma wartość null.

Parametr timeout ma wartość niższą niż zero.

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

.NET 7 i nowsze wersje tylko w systemie Linux: proces jest nieuprzywilejowany i buffer nie jest pusty.

Przykłady

W poniższym przykładzie kodu pokazano, jak wywołać tę metodę.

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

Uwagi

Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym przez timeout parametr, echo ICMP zakończy się niepowodzeniem, a Status właściwość ma wartość TimedOut.

Uwaga

Podczas określania bardzo małych liczb dla timeoutpolecenia można odebrać odpowiedź ping, nawet jeśli timeout upłynął czas milisekund.

DontFragment Jeśli właściwość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość .

Ttl Użyj właściwości , aby określić maksymalną liczbę przypadków przekazywania komunikatu echa ICMP przed dotarciem do miejsca docelowego. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy

Send(String, Int32, Byte[])

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do określonego komputera i otrzymać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji.

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

Element String identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP. Wartość określona dla tego parametru może być nazwą hosta lub ciągiem reprezentującym adres IP.

timeout
Int32

Int32 Wartość określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa) w celu oczekiwania na komunikat odpowiedzi echa ICMP.

buffer
Byte[]

Tablica zawierająca Byte dane do wysłania z komunikatem echa ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.

Zwraca

PingReply Obiekt, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę niepowodzenia, jeśli komunikat nie został odebrany.

Wyjątki

Rozmiar buffer przekracza 65500 bajtów.

hostNameOrAddress jest null ciągiem pustym ("").

-lub-

buffer to null.

Parametr timeout ma wartość niższą niż zero.

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

.NET 7 i nowsze wersje tylko w systemie Linux: proces jest nieuprzywilejowany i buffer nie jest pusty.

Przykłady

Aby zapoznać się z przykładem wywołania Send przeciążenia, zobacz Ping omówienie klasy.

Uwagi

Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym w parametrze timeout , echo ICMP zakończy się niepowodzeniem, a Status właściwość ma wartość TimedOut.

Uwaga

Podczas określania bardzo małych liczb dla timeoutpolecenia można odebrać odpowiedź ping, nawet jeśli timeout upłynął czas milisekund.

To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP może zostać pofragmentowany podczas przesyłania, jeśli całkowity rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi. Aby zapobiec fragmentacji, użyj jednej z Send metod, które pobiera options parametr i ustaw DontFragment właściwość na truewartość . Gdy DontFragment wartość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość .

Fragmenty pakietu lub pakietu mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj Send przeciążenia, które przyjmuje options parametr i ustaw Ttl właściwość na żądaną wartość. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy

Send(IPAddress, Int32, Byte[])

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do komputera, który ma określony IPAddresselement , i otrzyma odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. To przeciążenie umożliwia określenie wartości limitu czasu dla operacji.

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

Element IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.

timeout
Int32

Int32 Wartość określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa) w celu oczekiwania na komunikat odpowiedzi echa ICMP.

buffer
Byte[]

Tablica zawierająca Byte dane do wysłania z komunikatem echa ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.

Zwraca

PingReply Obiekt, który dostarcza informacje o wiadomości odpowiedzi echa ICMP, jeśli został odebrany lub podaje przyczynę błędu, jeśli nie odebrano komunikatu. Metoda zwróci PacketTooBig wartość , jeśli pakiet przekracza maksymalną jednostkę transmisji (MTU).

Wyjątki

Rozmiar buffer przekracza 65500 bajtów.

address lub buffer ma wartość null.

Parametr timeout ma wartość niższą niż zero.

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

.NET 7 i nowsze wersje tylko w systemie Linux: proces jest nieuprzywilejowany i buffer nie jest pusty.

Przykłady

W poniższym przykładzie kodu pokazano, jak wywołać tę metodę.

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

Uwagi

Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym w parametrze timeout , echo ICMP zakończy się niepowodzeniem, a Status właściwość ma wartość TimedOut.

Uwaga

Podczas określania bardzo małych liczb dla timeoutpolecenia można odebrać odpowiedź ping, nawet jeśli timeout upłynął czas milisekund.

To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP może zostać pofragmentowany podczas przesyłania, jeśli całkowity rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi. Aby zapobiec fragmentacji, użyj jednej z Send metod, które pobiera options parametr i ustaw DontFragment właściwość na truewartość . Gdy DontFragment wartość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość .

Fragmenty pakietu lub pakietu mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj Send przeciążenia, które przyjmuje options parametr i ustaw Ttl właściwość na żądaną wartość. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy

Send(String, Int32)

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do określonego komputera i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. Ta metoda umożliwia określenie wartości limitu czasu dla operacji.

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

Element String identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP. Wartość określona dla tego parametru może być nazwą hosta lub ciągiem reprezentującym adres IP.

timeout
Int32

Int32 Wartość określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa) w celu oczekiwania na komunikat odpowiedzi echa ICMP.

Zwraca

PingReply Obiekt, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę niepowodzenia, jeśli komunikat nie został odebrany.

Wyjątki

hostNameOrAddress jest null ciągiem pustym ("").

Parametr timeout ma wartość niższą niż zero.

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

Przykłady

Aby zapoznać się z przykładem, który demonstruje wywoływanie Send metody, zobacz Ping omówienie klasy.

Uwagi

Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym w parametrze timeout , echo ICMP zakończy się niepowodzeniem, a Status właściwość ma wartość TimedOut.

Uwaga

Podczas określania bardzo małych liczb dla timeoutpolecenia można odebrać odpowiedź ping, nawet jeśli timeout upłynął czas milisekund.

To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP może zostać pofragmentowany podczas przesyłania, jeśli całkowity rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi. Aby zapobiec fragmentacji, użyj jednej z Send metod, które pobiera options parametr i ustaw DontFragment właściwość na truewartość . Gdy DontFragment wartość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość . Fragmenty pakietu lub pakietu (jeśli zostały pofragmentowane) mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj Send przeciążenia, które przyjmuje options parametr i ustaw Ttl właściwość na żądaną wartość. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy

Send(IPAddress, Int32)

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) z określonym buforem danych do komputera, który ma określony IPAddresselement , i otrzyma odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. Ta metoda umożliwia określenie wartości limitu czasu dla operacji.

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

Element IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.

timeout
Int32

Int32 Wartość określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa) w celu oczekiwania na komunikat odpowiedzi echa ICMP.

Zwraca

PingReply Obiekt, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę niepowodzenia, jeśli komunikat nie został odebrany.

Wyjątki

address to null.

Parametr timeout ma wartość niższą niż zero.

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

Przykłady

Aby zapoznać się z przykładem, który demonstruje wywoływanie Send metody, zobacz Ping omówienie klasy.

Uwagi

Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym w parametrze timeout , echo ICMP zakończy się niepowodzeniem, a Status właściwość ma wartość TimedOut.

Uwaga

Podczas określania bardzo małych liczb dla timeoutpolecenia można odebrać odpowiedź ping, nawet jeśli timeout upłynął czas milisekund.

To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP może zostać pofragmentowany podczas przesyłania, jeśli całkowity rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi. Aby zapobiec fragmentacji, użyj jednej z Send metod, które pobiera options parametr i ustaw DontFragment właściwość na truewartość . Gdy DontFragment wartość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość .

Fragmenty pakietu lub pakietu mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj Send przeciążenia, które przyjmuje options parametr i ustaw Ttl właściwość na żądaną wartość. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy

Send(String)

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do określonego komputera i odebrać odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

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

Element String identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP. Wartość określona dla tego parametru może być nazwą hosta lub ciągiem reprezentującym adres IP.

Zwraca

PingReply Obiekt, który dostarcza informacje o wiadomości odpowiedzi echa ICMP, jeśli został odebrany lub podaje przyczynę błędu, jeśli nie odebrano komunikatu.

Wyjątki

hostNameOrAddress jest null ciągiem pustym ("").

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

Przykłady

W poniższym przykładzie kodu pokazano wywołanie tej 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);
    }
}

Uwagi

Ta metoda wysyła 32 Byte bufor danych z komunikatem echa ICMP. Metoda czeka pięć sekund na komunikat odpowiedzi echa ICMP. Jeśli w tym czasie nie otrzyma odpowiedzi, metoda zwraca wartość , a właściwość jest ustawiona Status na TimedOutwartość .

To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP może zostać pofragmentowany podczas przesyłania, jeśli całkowity rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi. Aby zapobiec fragmentacji, użyj jednej z Send metod, które pobiera options parametr i ustaw DontFragment właściwość na truewartość . Gdy DontFragment wartość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość . Fragmenty pakietu lub pakietu (jeśli zostały pofragmentowane) mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj Send przeciążenia, które przyjmuje options parametr i ustaw Ttl właściwość na żądaną wartość. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy

Send(IPAddress)

Źródło:
Ping.cs
Źródło:
Ping.cs
Źródło:
Ping.cs

Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do komputera, który ma określony IPAddresselement , i otrzyma odpowiedni komunikat odpowiedzi echa ICMP z tego komputera.

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

Element IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.

Zwraca

PingReply Obiekt, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub opisuje przyczynę błędu, jeśli nie odebrano komunikatu.

Wyjątki

address to null.

Wywołanie metody SendAsync jest w toku.

Podczas wysyłania lub odbierania komunikatów ICMP został zgłoszony wyjątek. Zobacz wyjątek wewnętrzny, aby uzyskać dokładny wyjątek, który został zgłoszony.

Ten obiekt został usunięty.

Przykłady

W poniższym przykładzie kodu pokazano wywołanie tej 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);
    }
}

Uwagi

Ta metoda wysyła do hosta określonego przez address bufor danych 32 Byte z komunikatem echa ICMP. Metoda czeka pięć sekund na komunikat odpowiedzi echa ICMP. Jeśli w tym czasie nie otrzyma odpowiedzi, metoda zwraca wartość , a właściwość jest ustawiona Status na TimedOutwartość .

To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP może zostać pofragmentowany podczas przesyłania, jeśli całkowity rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi. Aby zapobiec fragmentacji, użyj jednej z Send metod, które pobiera options parametr i ustaw DontFragment właściwość na truewartość . Gdy DontFragment wartość jest true i łączny rozmiar pakietu przekracza maksymalny rozmiar pakietu, który może być przesyłany przez jeden z węzłów routingu między komputerami lokalnymi i zdalnymi, żądanie echa ICMP kończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na PacketTooBigwartość . Fragmenty pakietu lub pakietu (jeśli zostały pofragmentowane) mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj Send przeciążenia, które przyjmuje options parametr i ustaw Ttl właściwość na żądaną wartość. Jeśli pakiet nie osiągnie miejsca docelowego po przesłaniu dalej określonej liczby razy, pakiet zostanie odrzucony, a żądanie echa ICMP zakończy się niepowodzeniem. W takim przypadku parametr Status jest ustawiony na TtlExpiredwartość .

Dotyczy