Ping.Send Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) till en fjärrdator och ta emot ett motsvarande ICMP-ekosvarsmeddelande från fjärrdatorn.
Överlagringar
| Name | Description |
|---|---|
| Send(IPAddress) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) till datorn som har angivet IPAddressoch ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. |
| Send(String) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. |
| Send(IPAddress, Int32) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till datorn som har angivet IPAddressoch ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här metoden kan du ange ett tidsgränsvärde för åtgärden. |
| Send(String, Int32) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här metoden kan du ange ett tidsgränsvärde för åtgärden. |
| Send(IPAddress, Int32, Byte[]) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till datorn som har angivet IPAddressoch ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden. |
| Send(String, Int32, Byte[]) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden. |
| Send(IPAddress, Int32, Byte[], PingOptions) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till datorn som har angivet IPAddress och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden och kontrollera fragmentering och Time-to-Live-värden för ICMP-ekomeddelandepaketet. |
| Send(String, Int32, Byte[], PingOptions) |
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden och kontrollera fragmentering och Time-to-Live-värden för ICMP-paketet. |
Kommentarer
IP-adressen som returneras av någon av Send överlagringarna kan komma från en skadlig fjärrdator. Anslut inte till fjärrdatorn med hjälp av detta. Använd DNS för att fastställa IP-adressen för den dator som du vill ansluta till.
Send(IPAddress)
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) till datorn som har angivet IPAddressoch ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn.
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
Parametrar
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet, om ett har tagits emot eller beskriver orsaken till felet om inget meddelande togs emot.
Undantag
address är null.
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
Exempel
Följande kodexempel visar hur du anropar den här metoden.
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);
}
}
Kommentarer
Den här metoden skickar till värden som anges av address en 32-databuffert Byte med ICMP-ekomeddelandet. Metoden väntar fem sekunder på ett ICMP-ekosvarsmeddelande. Om det inte får något svar under den tiden returnerar metoden och egenskapen Status är inställd på TimedOut.
Den här överlagringen använder standardinställningarna för paketfragmentering och vidarebefordran av paket. Paketet som innehåller ICMP-ekomeddelandet kan fragmenteras under överföring om den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna. För att förhindra fragmentering använder du en av metoderna Send som tar en options parameter och anger DontFragment egenskapen till true. När DontFragment är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig. Paket- eller paketfragmenten (om de är fragmenterade) kan vidarebefordras genom routning av noder 128 gånger innan de tas bort. Om du vill ändra den här inställningen använder du en Send överlagring som tar en options parameter och anger Ttl egenskapen till önskat värde. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.
Gäller för
Send(String)
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn.
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
Parametrar
- hostNameOrAddress
- String
En String som identifierar den dator som är målet för ICMP-ekomeddelandet. Värdet som anges för den här parametern kan vara ett värdnamn eller en strängrepresentation av en IP-adress.
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet, om ett har tagits emot eller anger orsaken till felet, om inget meddelande togs emot.
Undantag
hostNameOrAddress är null eller är en tom sträng ("").
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
Exempel
Följande kodexempel visar hur du anropar den här metoden.
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);
}
}
Kommentarer
Den här metoden skickar en 32-databuffert Byte med ICMP-ekomeddelandet. Metoden väntar fem sekunder på ett ICMP-ekosvarsmeddelande. Om det inte får något svar under den tiden returnerar metoden och egenskapen Status är inställd på TimedOut.
Den här överlagringen använder standardinställningarna för paketfragmentering och vidarebefordran av paket. Paketet som innehåller ICMP-ekomeddelandet kan fragmenteras under överföring om den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna. För att förhindra fragmentering använder du en av metoderna Send som tar en options parameter och anger DontFragment egenskapen till true. När DontFragment är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig. Paket- eller paketfragmenten (om de är fragmenterade) kan vidarebefordras genom routning av noder 128 gånger innan de tas bort. Om du vill ändra den här inställningen använder du en Send överlagring som tar en options parameter och anger Ttl egenskapen till önskat värde. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.
Gäller för
Send(IPAddress, Int32)
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till datorn som har angivet IPAddressoch ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här metoden kan du ange ett tidsgränsvärde för åtgärden.
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
Parametrar
- timeout
- Int32
Ett Int32 värde som anger det maximala antalet millisekunder (efter att ekomeddelandet har skickats) för att vänta tills ICMP-ekosvarsmeddelandet har skickats.
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet om ett har tagits emot, eller som anger orsaken till felet om inget meddelande togs emot.
Undantag
address är null.
timeout är mindre än noll.
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
Exempel
Ett exempel som visar hur du anropar en Send metod finns i klassöversikten Ping .
Kommentarer
Om ICMP-ekosvarsmeddelandet inte tas emot inom den tid som anges i parametern timeout misslyckas ICMP-ekot och Status egenskapen är inställd på TimedOut.
Note
När du anger mycket små tal för timeoutkan ping-svaret tas emot även om timeout millisekunderna har förflutit.
Den här överlagringen använder standardinställningarna för paketfragmentering och vidarebefordran av paket. Paketet som innehåller ICMP-ekomeddelandet kan fragmenteras under överföring om den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna. För att förhindra fragmentering använder du en av metoderna Send som tar en options parameter och anger DontFragment egenskapen till true. När DontFragment är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig.
Paket- eller paketfragmenten kan vidarebefordras av routningsnoder 128 gånger innan de tas bort. Om du vill ändra den här inställningen använder du en Send överlagring som tar en options parameter och anger Ttl egenskapen till önskat värde. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.
Gäller för
Send(String, Int32)
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här metoden kan du ange ett tidsgränsvärde för åtgärden.
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
Parametrar
- hostNameOrAddress
- String
En String som identifierar den dator som är målet för ICMP-ekomeddelandet. Värdet som anges för den här parametern kan vara ett värdnamn eller en strängrepresentation av en IP-adress.
- timeout
- Int32
Ett Int32 värde som anger det maximala antalet millisekunder (efter att ekomeddelandet har skickats) för att vänta tills ICMP-ekosvarsmeddelandet har skickats.
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet om ett har tagits emot, eller som anger orsaken till felet om inget meddelande togs emot.
Undantag
hostNameOrAddress är null eller är en tom sträng ("").
timeout är mindre än noll.
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
Exempel
Ett exempel som visar hur du anropar en Send metod finns i klassöversikten Ping .
Kommentarer
Om ICMP-ekosvarsmeddelandet inte tas emot inom den tid som anges i parametern timeout misslyckas ICMP-ekot och Status egenskapen är inställd på TimedOut.
Note
När du anger mycket små tal för timeoutkan ping-svaret tas emot även om timeout millisekunderna har förflutit.
Den här överlagringen använder standardinställningarna för paketfragmentering och vidarebefordran av paket. Paketet som innehåller ICMP-ekomeddelandet kan fragmenteras under överföring om den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna. För att förhindra fragmentering använder du en av metoderna Send som tar en options parameter och anger DontFragment egenskapen till true. När DontFragment är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig. Paket- eller paketfragmenten (om de är fragmenterade) kan vidarebefordras genom routning av noder 128 gånger innan de tas bort. Om du vill ändra den här inställningen använder du en Send överlagring som tar en options parameter och anger Ttl egenskapen till önskat värde. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.
Gäller för
Send(IPAddress, Int32, Byte[])
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till datorn som har angivet IPAddressoch ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden.
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
Parametrar
- timeout
- Int32
Ett Int32 värde som anger det maximala antalet millisekunder (efter att ekomeddelandet har skickats) för att vänta tills ICMP-ekosvarsmeddelandet har skickats.
- buffer
- Byte[]
En Byte matris som innehåller data som ska skickas med ICMP-ekomeddelandet och som returneras i ICMP-ekosvarsmeddelandet. Matrisen får inte innehålla mer än 65 500 byte.
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet, om ett har tagits emot eller anger orsaken till felet, om inget meddelande togs emot. Metoden returneras PacketTooBig om paketet överskrider MTU (Maximum Transmission Unit).
Undantag
Storleken på buffer överskrider 65500 byte.
address eller buffer är null.
timeout är mindre än noll.
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
.NET 7 och senare versioner endast i Linux: Processen är inte privilegierad och buffer är inte tom.
Exempel
I följande kodexempel visas hur du anropar den här metoden.
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);
}
}
Kommentarer
Om ICMP-ekosvarsmeddelandet inte tas emot inom den tid som anges i parametern timeout misslyckas ICMP-ekot och Status egenskapen är inställd på TimedOut.
Note
När du anger mycket små tal för timeoutkan ping-svaret tas emot även om timeout millisekunderna har förflutit.
Den här överlagringen använder standardinställningarna för paketfragmentering och vidarebefordran av paket. Paketet som innehåller ICMP-ekomeddelandet kan fragmenteras under överföring om den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna. För att förhindra fragmentering använder du en av metoderna Send som tar en options parameter och anger DontFragment egenskapen till true. När DontFragment är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig.
Paket- eller paketfragmenten kan vidarebefordras av routningsnoder 128 gånger innan de tas bort. Om du vill ändra den här inställningen använder du en Send överlagring som tar en options parameter och anger Ttl egenskapen till önskat värde. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.
Gäller för
Send(String, Int32, Byte[])
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden.
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
Parametrar
- hostNameOrAddress
- String
En String som identifierar den dator som är målet för ICMP-ekomeddelandet. Värdet som anges för den här parametern kan vara ett värdnamn eller en strängrepresentation av en IP-adress.
- timeout
- Int32
Ett Int32 värde som anger det maximala antalet millisekunder (efter att ekomeddelandet har skickats) för att vänta tills ICMP-ekosvarsmeddelandet har skickats.
- buffer
- Byte[]
En Byte matris som innehåller data som ska skickas med ICMP-ekomeddelandet och som returneras i ICMP-ekosvarsmeddelandet. Matrisen får inte innehålla mer än 65 500 byte.
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet om ett har tagits emot, eller som anger orsaken till felet om inget meddelande togs emot.
Undantag
Storleken på buffer överskrider 65500 byte.
hostNameOrAddress är null eller är en tom sträng ("").
-eller-
buffer är null.
timeout är mindre än noll.
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
.NET 7 och senare versioner endast i Linux: Processen är inte privilegierad och buffer är inte tom.
Exempel
Ett exempel som visar hur du anropar en Send överlagring finns i klassöversikten Ping .
Kommentarer
Om ICMP-ekosvarsmeddelandet inte tas emot inom den tid som anges i parametern timeout misslyckas ICMP-ekot och Status egenskapen är inställd på TimedOut.
Note
När du anger mycket små tal för timeoutkan ping-svaret tas emot även om timeout millisekunderna har förflutit.
Den här överlagringen använder standardinställningarna för paketfragmentering och vidarebefordran av paket. Paketet som innehåller ICMP-ekomeddelandet kan fragmenteras under överföring om den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna. För att förhindra fragmentering använder du en av metoderna Send som tar en options parameter och anger DontFragment egenskapen till true. När DontFragment är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig.
Paket- eller paketfragmenten kan vidarebefordras av routningsnoder 128 gånger innan de tas bort. Om du vill ändra den här inställningen använder du en Send överlagring som tar en options parameter och anger Ttl egenskapen till önskat värde. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.
Gäller för
Send(IPAddress, Int32, Byte[], PingOptions)
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till datorn som har angivet IPAddress och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden och kontrollera fragmentering och Time-to-Live-värden för ICMP-ekomeddelandepaketet.
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);
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
Parametrar
- timeout
- Int32
Ett Int32 värde som anger det maximala antalet millisekunder (efter att ekomeddelandet har skickats) för att vänta tills ICMP-ekosvarsmeddelandet har skickats.
- buffer
- Byte[]
En Byte matris som innehåller data som ska skickas med ICMP-ekomeddelandet och som returneras i ICMP-ekosvarsmeddelandet. Matrisen får inte innehålla mer än 65 500 byte.
- options
- PingOptions
Ett PingOptions objekt som används för att kontrollera fragmentering och Time-to-Live-värden för ICMP-ekomeddelandepaketet.
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet, om ett har tagits emot eller anger orsaken till felet, om inget meddelande togs emot. Metoden returneras PacketTooBig om paketet överskrider MTU (Maximum Transmission Unit).
Undantag
Storleken på buffer överskrider 65500 byte.
address eller buffer är null.
timeout är mindre än noll.
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
.NET 7 och senare versioner endast i Linux: Processen är inte privilegierad och buffer är inte tom.
Exempel
I följande kodexempel visas hur du anropar den här metoden.
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);
}
}
Kommentarer
Om ICMP-ekosvarsmeddelandet inte tas emot inom den tid som anges av parametern timeout misslyckas ICMP-ekot och Status egenskapen är inställd på TimedOut.
Note
När du anger mycket små tal för timeoutkan ping-svaret tas emot även om timeout millisekunderna har förflutit.
DontFragment Om egenskapen är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig.
Använd egenskapen Ttl för att ange det maximala antalet gånger som ICMP-ekomeddelandet kan vidarebefordras innan det når målet. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.
Gäller för
Send(String, Int32, Byte[], PingOptions)
Försöker skicka ett ICMP-ekomeddelande (Internet Control Message Protocol) med den angivna databufferten till den angivna datorn och ta emot ett motsvarande ICMP-ekosvarsmeddelande från datorn. Med den här överlagringen kan du ange ett timeout-värde för åtgärden och kontrollera fragmentering och Time-to-Live-värden för ICMP-paketet.
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);
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
Parametrar
- hostNameOrAddress
- String
En String som identifierar den dator som är målet för ICMP-ekomeddelandet. Värdet som anges för den här parametern kan vara ett värdnamn eller en strängrepresentation av en IP-adress.
- timeout
- Int32
Ett Int32 värde som anger det maximala antalet millisekunder (efter att ekomeddelandet har skickats) för att vänta tills ICMP-ekosvarsmeddelandet har skickats.
- buffer
- Byte[]
En Byte matris som innehåller data som ska skickas med ICMP-ekomeddelandet och som returneras i ICMP-ekosvarsmeddelandet. Matrisen får inte innehålla mer än 65 500 byte.
- options
- PingOptions
Ett PingOptions objekt som används för att kontrollera fragmentering och Time-to-Live-värden för ICMP-ekomeddelandepaketet.
Returer
Ett PingReply objekt som innehåller information om ICMP-ekosvarsmeddelandet om ett har tagits emot, eller som anger orsaken till felet om inget meddelande togs emot.
Undantag
Storleken på buffer överskrider 65500 byte.
hostNameOrAddress är null eller är en sträng med noll längd.
-eller-
buffer är null.
timeout är mindre än noll.
Ett anrop till SendAsync pågår.
Ett undantag utlöstes när ICMP-meddelandena skickades eller togs emot. Se det inre undantaget för det exakta undantaget som utlöstes.
Det här objektet har tagits bort.
.NET 7 och senare versioner endast i Linux: Processen är inte privilegierad och buffer är inte tom.
Exempel
I följande kodexempel visas hur du anropar den här metoden.
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);
}
}
Kommentarer
Om ICMP-ekosvarsmeddelandet inte tas emot inom den tid som anges av parametern timeout misslyckas ICMP-ekot och Status egenskapen är inställd på TimedOut.
Note
När du anger mycket små tal för timeoutkan ping-svaret tas emot även om timeout millisekunderna har förflutit.
DontFragment Om egenskapen är true och den totala paketstorleken överskrider den maximala paketstorlek som kan överföras av en av routningsnoderna mellan de lokala datorerna och fjärrdatorerna misslyckas ICMP-ekobegäran. När detta händer är inställt på StatusPacketTooBig.
Använd egenskapen Ttl för att ange det maximala antalet gånger som ICMP-ekomeddelandet kan vidarebefordras innan det når målet. Om paketet inte når sitt mål när det har vidarebefordrats det angivna antalet gånger ignoreras paketet och ICMP-ekobegäran misslyckas. När detta händer är inställt på StatusTtlExpired.