Socket.Ttl Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der den Time To Live -Wert (TTL) von Internet Protocol (IP)-Paketen angibt, die von der 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
Eigenschaftswert
Der TTL-Wert.
Ausnahmen
Der TTL-Wert ist eine negative Zahl.
Der Socket befindet sich nicht in den InterNetwork Oder InterNetworkV6 Familien.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten. Dieser Fehler wird auch zurückgegeben, wenn versucht wurde, TTL auf einen Wert höher als 255 festzulegen.
Das Socket wurde geschlossen.
Beispiele
Im folgenden Codebeispiel wird die Verwendung der Ttl Eigenschaft veranschaulicht.
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("");
}
Hinweise
Der TTL-Wert gibt die maximale Anzahl von Routern an, die das Paket durchlaufen kann, bevor der Router das Paket verwirft und eine Fehlermeldung "TTL überschritten" an den Absender zurückgegeben wird.
Der TTL-Wert kann auf einen Wert von 0 bis 255 festgelegt werden. Wenn diese Eigenschaft nicht festgelegt ist, ist der Standard-TTL-Wert für einen Socket 32.
Das Festlegen dieser Eigenschaft auf einem TCP-Socket (Transmission Control Protocol) wird vom TCP/IP-Stapel ignoriert, wenn mithilfe des Sockets eine erfolgreiche Verbindung hergestellt wurde.
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.