PingOptions Klasa
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.
Służy do kontrolowania sposobu Ping przesyłania pakietów danych.
public ref class PingOptions
public class PingOptions
type PingOptions = class
Public Class PingOptions
- Dziedziczenie
-
PingOptions
Przykłady
Poniższy przykład kodu używa PingPingOptions klas i , PingReply aby wysłać żądanie echa ICMP do hosta określonego w wierszu polecenia.
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::Text;
// args[1] can be an IPaddress or host name.
int main()
{
array<String^>^args = Environment::GetCommandLineArgs();
Ping ^ pingSender = gcnew Ping;
PingOptions ^ options = gcnew PingOptions;
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options->DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
array<Byte>^buffer = Encoding::ASCII->GetBytes( data );
int timeout = 120;
PingReply ^ reply = pingSender->Send( args[ 1 ], 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 );
}
}
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
namespace Examples.System.Net.NetworkInformation.PingTest
{
public class PingExample
{
// args[0] can be an IPaddress or host name.
public static void Main (string[] args)
{
Ping pingSender = new Ping ();
PingOptions options = new PingOptions ();
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options.DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
int timeout = 120;
PingReply reply = pingSender.Send (args[0], 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);
}
}
}
}
open System.Net.NetworkInformation
open System.Text
// args[0] can be an IPaddress or host name.
[<EntryPoint>]
let main args =
let pingSender = new Ping()
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
let options = PingOptions()
options.DontFragment <- true
// Create a buffer of 32 bytes of data to be transmitted.
let data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
let buffer = Encoding.ASCII.GetBytes data
let timeout = 120
let reply: PingReply = pingSender.Send(args.[0], timeout, buffer, options)
match reply.Status with
| IPStatus.Success ->
printfn "Address: %O" reply.Address
printfn "RoundTrip time: %d" reply.RoundtripTime
printfn "Time to live: %d" reply.Options.Ttl
printfn "Don't fragment: %b" reply.Options.DontFragment
printfn "Buffer size: %d" reply.Buffer.Length
0
| _ ->
eprintfn "Error sending ping: %O" reply
eprintfn "Error was: %O" reply.Status
1
Uwagi
Klasa PingOptions udostępnia Ttl właściwości i DontFragment do kontrolowania sposobu przesyłania pakietów żądań echa protokołu ICMP (Internet Control Message Protocol).
Właściwość Ttl określa czas wygaśnięcia pakietów wysyłanych przez klasę Ping . Ta wartość wskazuje liczbę węzłów routingu, które mogą przekazywać pakiet przed odrzuceniem Ping . Ustawienie tej opcji jest przydatne, jeśli chcesz przetestować liczbę przeskoków, znanych również jako przeskoki, są wymagane do wysłania pakietu z komputera źródłowego na komputer docelowy.
Właściwość DontFragment określa, czy dane wysyłane do hosta zdalnego można podzielić na wiele pakietów. Ta opcja jest przydatna, jeśli chcesz przetestować maksymalną jednostkę transmisji (MTU) routerów i bram używanych do przesyłania pakietu.
PingOptions Wystąpienia klasy są przekazywane do Send metod iSendAsync, a PingReply klasa zwraca wystąpienia PingOptions za pośrednictwem Options właściwości .
Aby uzyskać listę początkowych wartości właściwości dla wystąpienia programu PingOptions, zobacz PingOptions konstruktor.
Konstruktory
PingOptions() |
Inicjuje nowe wystąpienie klasy PingOptions. |
PingOptions(Int32, Boolean) |
Inicjuje PingOptions nowe wystąpienie klasy i ustawia wartość Czas wygaśnięcia i fragmentacji. |
Właściwości
DontFragment |
Pobiera lub ustawia Boolean wartość, która kontroluje fragmentację danych wysyłanych do hosta zdalnego. |
Ttl |
Pobiera lub ustawia liczbę węzłów routingu, które mogą przekazywać Ping dane przed odrzuceniem. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |