LingerOption Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Specifies whether a Socket will remain connected after a call to the Close or Close methods and the length of time it will remain connected, if data remains to be sent.

Namespace:   System.Net.Sockets
Assembly:  System (in System.dll)


public ref class LingerOption 

System_CAPS_pubmethodLingerOption(Boolean, Int32)

Initializes a new instance of the LingerOption class.


Gets or sets a value that indicates whether to linger after the Socket is closed.


Gets or sets the amount of time to remain connected after calling the Socket::Close method if data remains to be sent.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Returns a string that represents the current object.(Inherited from Object.)

There may still be data available in the outgoing network buffer after an application calls the Socket or TcpClient method. If you want to specify the amount of time that the Socket will attempt to transmit unsent data after closing, create a LingerOption with the enable parameter set to true, and the seconds parameter set to the desired amount of time. The seconds parameter is used to indicate how long you would like the Socket to remain connected before timing out. If you do not want the Socket to stay connected for any length of time after closing, create a LingerOption instance with the enable parameter set to true and the seconds parameter set to zero. In this case, the Socket will close immediately and any unsent data will be lost. Once created, pass the LingerOption to the Socket::SetSocketOption method. If you are sending and receiving data with a TcpClient, then set the LingerOption instance in the TcpClient::LingerState property.

The IP stack computes the default IP protocol time-out period to use based on the round trip time of the connection. In most cases, the time-out computed by the stack is more relevant than one defined by an application. This is the default behavior for a Socket when the LingerState property is not set and for a TcpClient when the LingerState property is not set.

The following example sets a previously created Socket to linger one second after calling the Close method.

LingerOption^ myOpts = gcnew LingerOption( true,1 );
mySocket->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts );

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top