Partager via


Socket.Ttl Propriété

Définition

Obtient ou définit une valeur qui spécifie la valeur durée de vie (TTL) des paquets IP (Internet Protocol) envoyés par le 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

Valeur de propriété

Valeur de durée de vie.

Exceptions

La valeur de durée de vie est un nombre négatif.

Le socket n’est pas dans les InterNetwork familles.InterNetworkV6

Une erreur s’est produite lors de la tentative d’accès au socket. Cette erreur est également retournée lorsqu’une tentative a été effectuée pour définir la durée de vie sur une valeur supérieure à 255.

Il Socket a été fermé.

Exemples

L’exemple de code suivant illustre l’utilisation de la Ttl propriété.

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("");
}

Remarques

La valeur de durée de vie indique le nombre maximal de routeurs que le paquet peut parcourir avant que le routeur ignore le paquet et qu’un message d’erreur « TTL dépassé » (ICMP) soit retourné à l’expéditeur.

La valeur de durée de vie peut être définie sur une valeur comprise entre 0 et 255. Lorsque cette propriété n’est pas définie, la valeur de durée de vie par défaut d’un socket est 32.

La définition de cette propriété sur un socket TCP (Transmission Control Protocol) est ignorée par la pile TCP/IP si une connexion réussie a été établie à l’aide du socket.

Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

S’applique à