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)

public int ReceiveTimeout { get; set; }

Property Value

Type: System.Int32
The 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.

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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft