Ping.Send Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Próbuje wysłać komunikat echa protokołu ICMP (Internet Control Message Protocol) do komputera zdalnego i otrzymać 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 fragmentacji kontrolki oraz wartości Time-to-Live dla pakietu ICMP. |
Send(IPAddress, TimeSpan, Byte[], PingOptions) |
Próbuje wysłać komunikat echo protokołu ICMP (Internet Control Message Protocol) do komputera, który ma określony IPAddress, i w celu odebrania odpowiedniego komunikatu 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 z określonym IPAddress i otrzymać 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 IPAddress, 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 otrzymać 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 IPAddress, 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 otrzymać 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 IPAddress, i otrzymuje odpowiedni komunikat odpowiedzi echa ICMP z tego komputera. |
Uwagi
Adres IP zwrócony przez dowolne z przeciążeń Send 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
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 komunikatu echa) do oczekiwania na komunikat odpowiedzi echa ICMP.
- buffer
- Byte[]
Tablica Byte zawierająca dane do wysłania z komunikatem echo ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.
- options
- PingOptions
Obiekt PingOptions używany 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ł odebrany lub przyczyna błędu, jeśli nie odebrano żadnego komunikatu.
Wyjątki
buffer
lub hostNameOrAddress
jest null
lub hostNameOrAddress
jest pustym ciągiem ("").
timeout
reprezentuje czas krótszy niż zero milisekund lub większy niż MaxValue milisekund.
Rozmiar buffer
jest większy niż 65 500 bajtów.
Trwa wywołanie metody SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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 fragmentacji kontrolki oraz wartości Time-to-Live dla 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
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
Wartość Int32 określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa), aby poczekać na komunikat odpowiedzi echa ICMP.
- buffer
- Byte[]
Tablica Byte zawierająca dane do wysłania z komunikatem echo ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.
- options
- PingOptions
Obiekt PingOptions używany do kontrolowania fragmentacji i wartości time-to-live dla pakietu komunikatów echa ICMP.
Zwraca
Obiekt PingReply, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę błędu, jeśli nie odebrano komunikatu.
Wyjątki
Rozmiar buffer
przekracza 65500 bajtów.
hostNameOrAddress
jest null
lub jest ciągiem o zerowej długości.
-lub-
buffer
jest null
.
timeout
jest mniejsza niż zero.
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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, a 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 parametr timeout
, echo ICMP zakończy się niepowodzeniem, a właściwość Status zostanie ustawiona na TimedOut.
Nuta
Podczas określania bardzo małych liczb dla timeout
można odebrać odpowiedź ping, nawet jeśli upłynęło timeout
milisekundy.
Jeśli właściwość DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig.
Użyj właściwości Ttl, 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 Status jest ustawiona na TtlExpired.
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 echo protokołu ICMP (Internet Control Message Protocol) do komputera, który ma określony IPAddress, i w celu odebrania odpowiedniego komunikatu 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
IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.
- timeout
- TimeSpan
Wartość określająca maksymalny czas (po wysłaniu komunikatu echa) do oczekiwania na komunikat odpowiedzi echa ICMP.
- buffer
- Byte[]
Tablica Byte zawierająca dane do wysłania z komunikatem echo ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.
- options
- PingOptions
Obiekt PingOptions używany 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ł odebrany lub przyczyna błędu, jeśli nie odebrano żadnego komunikatu.
Wyjątki
address
lub buffer
jest null
.
timeout
reprezentuje czas krótszy niż zero milisekund lub większy niż MaxValue milisekund.
Rozmiar buffer
jest większy niż 65 500 bajtów.
Trwa wywołanie metody SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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 z określonym IPAddress i otrzymać 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
IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.
- timeout
- Int32
Wartość Int32 określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa), aby poczekać na komunikat odpowiedzi echa ICMP.
- buffer
- Byte[]
Tablica Byte zawierająca dane do wysłania z komunikatem echo ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.
- options
- PingOptions
Obiekt PingOptions używany do kontrolowania fragmentacji i wartości time-to-live dla pakietu komunikatów echa ICMP.
Zwraca
Obiekt PingReply, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany lub podaje przyczynę błędu, jeśli nie odebrano komunikatu. Metoda zwróci PacketTooBig, jeśli pakiet przekroczy maksymalną jednostkę transmisji (MTU).
Wyjątki
Rozmiar buffer
przekracza 65500 bajtów.
address
lub buffer
jest null
.
timeout
jest mniejsza niż zero.
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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, a 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 parametr timeout
, echo ICMP zakończy się niepowodzeniem, a właściwość Status zostanie ustawiona na TimedOut.
Nuta
Podczas określania bardzo małych liczb dla timeout
można odebrać odpowiedź ping, nawet jeśli upłynęło timeout
milisekundy.
Jeśli właściwość DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig.
Użyj właściwości Ttl, 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 Status jest ustawiona na TtlExpired.
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
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
Wartość Int32 określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa), aby poczekać na komunikat odpowiedzi echa ICMP.
- buffer
- Byte[]
Tablica Byte zawierająca dane do wysłania z komunikatem echo ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.
Zwraca
Obiekt PingReply, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę błędu, jeśli nie odebrano komunikatu.
Wyjątki
Rozmiar buffer
przekracza 65500 bajtów.
hostNameOrAddress
jest null
lub jest pustym ciągiem ("").
-lub-
buffer
jest null
.
timeout
jest mniejsza niż zero.
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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, a buffer
nie jest pusty.
Przykłady
Aby zapoznać się z przykładem wywoływania przeciążenia Send, zobacz omówienie klasy Ping.
Uwagi
Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym w parametrze timeout
, echo ICMP zakończy się niepowodzeniem, a właściwość Status zostanie ustawiona na TimedOut.
Nuta
Podczas określania bardzo małych liczb dla timeout
można odebrać odpowiedź ping, nawet jeśli upłynęło timeout
milisekundy.
To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP można fragmentować w trakcie 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 metod Send, która przyjmuje parametr options
, i ustaw właściwość DontFragment na true
. Jeśli DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig.
Fragmenty pakietu lub pakietu mogą być przekazywane przez węzły rozsyłania 128 razy, zanim zostaną odrzucone. Aby zmienić to ustawienie, użyj przeciążenia Send, które przyjmuje parametr options
, i ustaw właściwość Ttl 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 Status jest ustawiona na TtlExpired.
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 IPAddress, 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
IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.
- timeout
- Int32
Wartość Int32 określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa), aby poczekać na komunikat odpowiedzi echa ICMP.
- buffer
- Byte[]
Tablica Byte zawierająca dane do wysłania z komunikatem echo ICMP i zwrócona w komunikacie odpowiedzi echa ICMP. Tablica nie może zawierać więcej niż 65 500 bajtów.
Zwraca
Obiekt PingReply, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany lub podaje przyczynę błędu, jeśli nie odebrano komunikatu. Metoda zwróci PacketTooBig, jeśli pakiet przekroczy maksymalną jednostkę transmisji (MTU).
Wyjątki
Rozmiar buffer
przekracza 65500 bajtów.
address
lub buffer
jest null
.
timeout
jest mniejsza niż zero.
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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, a 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 właściwość Status zostanie ustawiona na TimedOut.
Nuta
Podczas określania bardzo małych liczb dla timeout
można odebrać odpowiedź ping, nawet jeśli upłynęło timeout
milisekundy.
To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP można fragmentować w trakcie 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 metod Send, która przyjmuje parametr options
, i ustaw właściwość DontFragment na true
. Jeśli DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig.
Fragmenty pakietu lub pakietu mogą być przekazywane przez węzły rozsyłania 128 razy, zanim zostaną odrzucone. Aby zmienić to ustawienie, użyj przeciążenia Send, które przyjmuje parametr options
, i ustaw właściwość Ttl 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 Status jest ustawiona na TtlExpired.
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 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::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
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
Wartość Int32 określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa), aby poczekać na komunikat odpowiedzi echa ICMP.
Zwraca
Obiekt PingReply, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę błędu, jeśli nie odebrano komunikatu.
Wyjątki
hostNameOrAddress
jest null
lub jest pustym ciągiem ("").
timeout
jest mniejsza niż zero.
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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 wywoływania metody Send, zobacz omówienie klasy Ping.
Uwagi
Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym w parametrze timeout
, echo ICMP zakończy się niepowodzeniem, a właściwość Status zostanie ustawiona na TimedOut.
Nuta
Podczas określania bardzo małych liczb dla timeout
można odebrać odpowiedź ping, nawet jeśli upłynęło timeout
milisekundy.
To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP można fragmentować w trakcie 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 metod Send, która przyjmuje parametr options
, i ustaw właściwość DontFragment na true
. Jeśli DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig. Pakiety lub fragmenty pakietów (jeśli zostały pofragmentowane) mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj przeciążenia Send, które przyjmuje parametr options
, i ustaw właściwość Ttl 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 Status jest ustawiona na TtlExpired.
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 IPAddress, 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
IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.
- timeout
- Int32
Wartość Int32 określająca maksymalną liczbę milisekund (po wysłaniu wiadomości echa), aby poczekać na komunikat odpowiedzi echa ICMP.
Zwraca
Obiekt PingReply, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany, lub podaje przyczynę błędu, jeśli nie odebrano komunikatu.
Wyjątki
address
jest null
.
timeout
jest mniejsza niż zero.
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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 wywoływania metody Send, zobacz omówienie klasy Ping.
Uwagi
Jeśli komunikat odpowiedzi echa ICMP nie zostanie odebrany w czasie określonym w parametrze timeout
, echo ICMP zakończy się niepowodzeniem, a właściwość Status zostanie ustawiona na TimedOut.
Nuta
Podczas określania bardzo małych liczb dla timeout
można odebrać odpowiedź ping, nawet jeśli upłynęło timeout
milisekundy.
To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP można fragmentować w trakcie 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 metod Send, która przyjmuje parametr options
, i ustaw właściwość DontFragment na true
. Jeśli DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig.
Fragmenty pakietu lub pakietu mogą być przekazywane przez węzły rozsyłania 128 razy, zanim zostaną odrzucone. Aby zmienić to ustawienie, użyj przeciążenia Send, które przyjmuje parametr options
, i ustaw właściwość Ttl 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 Status jest ustawiona na TtlExpired.
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 otrzymać 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
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
Obiekt PingReply, który zawiera informacje o komunikacie odpowiedzi echa ICMP, jeśli został odebrany lub podaje przyczynę błędu, jeśli nie odebrano komunikatu.
Wyjątki
hostNameOrAddress
jest null
lub jest pustym ciągiem ("").
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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ść Status jest ustawiona na wartość TimedOut.
To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP można fragmentować w trakcie 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 metod Send, która przyjmuje parametr options
, i ustaw właściwość DontFragment na true
. Jeśli DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig. Pakiety lub fragmenty pakietów (jeśli zostały pofragmentowane) mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj przeciążenia Send, które przyjmuje parametr options
, i ustaw właściwość Ttl 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 Status jest ustawiona na TtlExpired.
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 IPAddress, i otrzymuje 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
IPAddress identyfikujący komputer, który jest miejscem docelowym komunikatu echa ICMP.
Zwraca
Obiekt PingReply, 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
jest null
.
Trwa wywołanie SendAsync.
Wyjątek został zgłoszony podczas wysyłania lub odbierania komunikatów ICMP. 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
32 Byte bufor danych z komunikatem echo 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ść Status jest ustawiona na wartość TimedOut.
To przeciążenie używa domyślnych ustawień fragmentacji pakietów i przekazywania pakietów. Pakiet zawierający komunikat echa ICMP można fragmentować w trakcie 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 metod Send, która przyjmuje parametr options
, i ustaw właściwość DontFragment na true
. Jeśli DontFragment jest true
, a łą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 Status jest ustawiona na PacketTooBig. Pakiety lub fragmenty pakietów (jeśli zostały pofragmentowane) mogą być przekazywane przez węzły routingu 128 razy przed odrzuceniem. Aby zmienić to ustawienie, użyj przeciążenia Send, które przyjmuje parametr options
, i ustaw właściwość Ttl 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 Status jest ustawiona na TtlExpired.