Socket.Ttl Egenskap
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.
Hämtar eller anger ett värde som anger TTL-värdet (Time To Live) för IP-paket (Internet Protocol) som skickas av 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
Egenskapsvärde
TTL-värdet.
Undantag
TTL-värdet är ett negativt tal.
Socketen är inte i InterNetwork eller InterNetworkV6 familjer.
Ett fel uppstod vid försök att komma åt socketen. Det här felet returneras också när ett försök gjordes att ange TTL till ett värde som är högre än 255.
Har Socket stängts.
Exempel
Följande kodexempel visar hur egenskapen används Ttl .
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("");
}
Kommentarer
TTL-värdet anger det maximala antalet routrar som paketet kan passera innan routern tar bort paketet och felmeddelandet "TTL överskreds" i Internet Control Message Protocol (ICMP) returneras till avsändaren.
TTL-värdet kan anges till ett värde från 0 till 255. När den här egenskapen inte har angetts är standardvärdet för TTL för en socket 32.
Inställningen av den här egenskapen på en TCP-socket (Transmission Control Protocol) ignoreras av TCP/IP-stacken om en lyckad anslutning har upprättats med hjälp av socketen.
Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.