Socket.SendTimeout Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur spécifiant la durée après laquelle un appel Send synchrone doit expirer.
public:
property int SendTimeout { int get(); void set(int value); };
public int SendTimeout { get; set; }
member this.SendTimeout : int with get, set
Public Property SendTimeout As Integer
Valeur de propriété
Valeur du délai d'attente exprimée en millisecondes. Si vous affectez à la propriété une valeur comprise entre 1 et 499, cette valeur est remplacée par 500. La valeur par défaut est 0, ce qui indique un délai d'attente infini. La valeur -1 indique également un délai d'attente infini.
Exceptions
Une erreur s’est produite pendant la tentative d’accès au socket.
Socket a été fermé.
La valeur spécifiée pour une opération ensembliste est inférieure à -1.
Exemples
L’exemple de code suivant illustre l’utilisation de la SendTimeout 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 = gcnew 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 {0}",
tcpSocket->ExclusiveAddressUse);
Console::WriteLine(" LingerState {0}, {1}",
tcpSocket->LingerState->Enabled,
tcpSocket->LingerState->LingerTime);
Console::WriteLine(" NoDelay {0}",
tcpSocket->NoDelay);
Console::WriteLine(" ReceiveBufferSize {0}",
tcpSocket->ReceiveBufferSize);
Console::WriteLine(" ReceiveTimeout {0}",
tcpSocket->ReceiveTimeout);
Console::WriteLine(" SendBufferSize {0}",
tcpSocket->SendBufferSize);
Console::WriteLine(" SendTimeout {0}",
tcpSocket->SendTimeout);
Console::WriteLine(" Ttl {0}",
tcpSocket->Ttl);
Console::WriteLine(" IsBound {0}",
tcpSocket->IsBound);
Console::WriteLine("");
}
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
Cette option s’applique uniquement aux appels synchrones Send . Si le délai d’attente est dépassé, la Send méthode lève un SocketException.