Socket.Ttl Egenskap

Definition

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.

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.

Gäller för