Edit

Share via


ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) Method

Definition

Enables or disables the keep-alive option on a TCP connection.

public:
 static void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
public static void SetTcpKeepAlive (bool enabled, int keepAliveTime, int keepAliveInterval);
static member SetTcpKeepAlive : bool * int * int -> unit
Public Shared Sub SetTcpKeepAlive (enabled As Boolean, keepAliveTime As Integer, keepAliveInterval As Integer)

Parameters

enabled
Boolean

If set to true, then the TCP keep-alive option on a TCP connection will be enabled using the specified keepAliveTime and keepAliveInterval values.

If set to false, then the TCP keep-alive option is disabled and the remaining parameters are ignored.

The default value is false.

keepAliveTime
Int32

Specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent.

The value must be greater than 0. If a value of less than or equal to zero is passed an ArgumentOutOfRangeException is thrown.

keepAliveInterval
Int32

Specifies the interval, in milliseconds, between when successive keep-alive packets are sent if no acknowledgement is received.

The value must be greater than 0. If a value of less than or equal to zero is passed an ArgumentOutOfRangeException is thrown.

Exceptions

The value specified for keepAliveTime or keepAliveInterval parameter is less than or equal to 0.

Remarks

An application can request that a TCP/IP provider enable the use of keep-alive packets on a TCP connection. The default is that the use of keep-alive packets on a TCP connection is disabled.

The default settings when a TCP socket is initialized sets the keep-alive timeout to 2 hours and the keep-alive interval to 1 second. The keepAliveTime parameter specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent. The keepAliveInterval parameter specifies the interval, in milliseconds, between when successive keep-alive packets are sent if no acknowledgement is received. The number of keep-alive probes cannot be changed and is set to 10.

If a TCP connection is dropped as the result of keep-alives, a SocketError of NetworkReset is returned to any calls in progress on the socket, and any subsequent calls will fail with a SocketError of NotConnected.

Applies to

See also