Socket.ReceiveTimeout Property
Gets or sets a value that specifies the amount of time after which a synchronous Receive call will time out.
Namespace: System.Net.Sockets
Assembly: System (in System.dll)
Property Value
Type: System.Int32The time-out value, in milliseconds. The default value is 0, which indicates an infinite time-out period. Specifying -1 also indicates an infinite time-out period.
| Exception | Condition |
|---|---|
| SocketException | An error occurred when attempting to access the socket. |
| ObjectDisposedException | The Socket has been closed. |
| ArgumentOutOfRangeException | The value specified for a set operation is less than -1. |
This option applies to synchronous Receive calls only. If the time-out period is exceeded, the Receive method will throw a SocketException.
The following code example demonstrates the use of the ReceiveTimeout property.
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 {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(""); }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.