PingOptions Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Používá se k řízení způsobu Ping přenosu datových paketů.
public ref class PingOptions
public class PingOptions
type PingOptions = class
Public Class PingOptions
- Dědičnost
-
PingOptions
Příklady
Následující příklad kódu používá Pingtřídy , PingOptions a PingReply k odeslání požadavku na odezvu ICMP na hostitele zadaného na příkazovém řádku.
#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
Poznámky
Třída PingOptions poskytuje Ttl vlastnosti a DontFragment pro řízení způsobu přenosu paketů požadavků na odezvu protokolu ICMP (Internet Control Message Protocol).
Vlastnost Ttl určuje hodnotu TTL (Time to Live) pro pakety odeslané Ping třídou . Tato hodnota určuje počet uzlů směrování, které můžou paket předat dál Ping , než se zahodí. Nastavení této možnosti je užitečné, pokud chcete otestovat počet přesměrování, označovaných také jako segmenty směrování, které se vyžadují k odeslání paketu ze zdrojového počítače do cílového počítače.
Vlastnost DontFragment určuje, zda lze data odesílaná vzdálenému hostiteli rozdělit na více paketů. Tato možnost je užitečná, pokud chcete otestovat maximální jednotku přenosu (MTU) směrovačů a bran používaných k přenosu paketu.
Instance třídy jsou předány PingOptionsSend metodám a SendAsync a PingReply třída vrací instance PingOptions třídy prostřednictvím Options vlastnosti .
Seznam počátečních hodnot vlastností pro instanci PingOptionsnaleznete v konstruktoru PingOptions .
Konstruktory
PingOptions() |
Inicializuje novou instanci PingOptions třídy . |
PingOptions(Int32, Boolean) |
Inicializuje novou instanci PingOptions třídy a nastaví hodnoty Time to Live a fragmentace. |
Vlastnosti
DontFragment |
Získá nebo nastaví Boolean hodnotu, která řídí fragmentaci dat odesílaných na vzdáleného hostitele. |
Ttl |
Získá nebo nastaví počet uzlů směrování, které mohou předávat Ping data před jejich zahození. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |