Socket.Ttl Vlastnost
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í.
Získá nebo nastaví hodnotu, která určuje hodnotu TTL (Time To Live) paketů protokolu IP (Internet Protocol) odesílaných protokolem Socket.
public:
property short Ttl { short get(); void set(short value); };
public short Ttl { get; set; }
member this.Ttl : int16 with get, set
Public Property Ttl As Short
Hodnota vlastnosti
Hodnota TTL.
Výjimky
Hodnota TTL je záporné číslo.
Soket není v rodině ani InterNetwork v rodiněInterNetworkV6.
Při pokusu o přístup k soketu došlo k chybě. Tato chyba se vrátí také při pokusu o nastavení hodnoty TTL na hodnotu vyšší než 255.
Ta Socket byla uzavřena.
Příklady
Následující příklad kódu ukazuje použití Ttl vlastnosti.
static void ConfigureTcpSocket(Socket tcpSocket)
{
// Don't allow another socket to bind to this port.
tcpSocket.ExclusiveAddressUse = true;
// The socket will linger for 10 seconds after
// Socket.Close is called.
tcpSocket.LingerState = new LingerOption (true, 10);
// Disable the Nagle Algorithm for this tcp socket.
tcpSocket.NoDelay = true;
// Set the receive buffer size to 8k
tcpSocket.ReceiveBufferSize = 8192;
// Set the timeout for synchronous receive methods to
// 1 second (1000 milliseconds.)
tcpSocket.ReceiveTimeout = 1000;
// Set the send buffer size to 8k.
tcpSocket.SendBufferSize = 8192;
// Set the timeout for synchronous send methods
// to 1 second (1000 milliseconds.)
tcpSocket.SendTimeout = 1000;
// Set the Time To Live (TTL) to 42 router hops.
tcpSocket.Ttl = 42;
Console.WriteLine("Tcp Socket configured:");
Console.WriteLine($" ExclusiveAddressUse {tcpSocket.ExclusiveAddressUse}");
Console.WriteLine($" LingerState {tcpSocket.LingerState.Enabled}, {tcpSocket.LingerState.LingerTime}");
Console.WriteLine($" NoDelay {tcpSocket.NoDelay}");
Console.WriteLine($" ReceiveBufferSize {tcpSocket.ReceiveBufferSize}");
Console.WriteLine($" ReceiveTimeout {tcpSocket.ReceiveTimeout}");
Console.WriteLine($" SendBufferSize {tcpSocket.SendBufferSize}");
Console.WriteLine($" SendTimeout {tcpSocket.SendTimeout}");
Console.WriteLine($" Ttl {tcpSocket.Ttl}");
Console.WriteLine($" IsBound {tcpSocket.IsBound}");
Console.WriteLine("");
}
Poznámky
Hodnota TTL označuje maximální počet směrovačů, které paket může procházet, než směrovač paket zahodí a chybová zpráva "TTL exceeded" (Internet Control Message Protocol) je vrácena odesílateli.
Hodnota TTL může být nastavena na hodnotu od 0 do 255. Pokud tato vlastnost není nastavena, výchozí hodnota TTL pro soket je 32.
Nastavení této vlastnosti na soketu TCP (Transmission Control Protocol) je ignorováno zásobníkem TCP/IP, pokud bylo vytvořeno úspěšné připojení pomocí soketu.
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby.