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 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 null
hostNameOrAddress
ciągiem pustym ("").
timeout
reprezentuje czas krótszy niż zero milisekund lub większy niż MaxValue milisekundy.
Rozmiar buffer
elementu 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.
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 timeout
polecenia 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 buffer
elementu 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 timeout
polecenia 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.
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 timeout
polecenia 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 true
wartość . 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 timeout
polecenia 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 true
wartość . 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 timeout
polecenia 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 true
wartość . 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 timeout
polecenia 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 true
wartość . 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 true
wartość . 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 true
wartość . 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ść .