Language

ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) メソッド

定義

TCP 接続のキープアライブ オプションを有効または無効にします。

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)

パラメーター

enabled
Boolean

true に設定すると、指定した keepAliveTime と keepAliveInterval の値を使用して、TCP 接続の TCP キープアライブ オプションが有効になります。

false に設定すると、TCP キープアライブ オプションは無効になり、残りのパラメーターは無視されます。

既定値は false です。

keepAliveTime
Int32

最初のキープアライブ パケットが送信されるまで、タイムアウト (ミリ秒単位) をアクティビティなしで指定します。

値は 0 より大きい必要があります。 0 以下の値が渡されると、 ArgumentOutOfRangeException がスローされます。

keepAliveInterval
Int32

受信確認が受信されない場合に連続するキープアライブ パケットが送信されるまでの間隔をミリ秒単位で指定します。

値は 0 より大きい必要があります。 0 以下の値が渡されると、 ArgumentOutOfRangeException がスローされます。

例外

keepAliveTimeパラメーターまたは keepAliveInterval パラメーターに指定された値が 0 以下です。

注釈

アプリケーションは、TCP/IP プロバイダーが TCP 接続でキープアライブ パケットの使用を有効にすることを要求できます。 既定では、TCP 接続でのキープアライブ パケットの使用は無効になっています。

TCP ソケットが初期化されたときの既定の設定では、キープアライブ タイムアウトが 2 時間、キープアライブ間隔が 1 秒に設定されます。 keepAliveTime パラメーターは、最初のキープアライブ パケットが送信されるまで、タイムアウト (ミリ秒単位) をアクティビティなしで指定します。 keepAliveInterval パラメーターは、受信確認が受信されない場合に連続するキープアライブ パケットが送信されるまでの間隔をミリ秒単位で指定します。 キープアライブ プローブの数は変更できず、10 に設定されます。

キープアライブの結果として TCP 接続が切断されると、ソケットで進行中のすべての呼び出しにSocketErrorのNetworkResetが返され、後続の呼び出しはSocketErrorのNotConnectedで失敗します。

このメソッドはスレッド セーフではありません。 同時に作成された ServicePoint では、TCP キープアライブの値が部分的に変更されることがあります。

Note

.NET 9 以降、 HttpWebRequest では SocketsHttpHandler.ConnectCallback を使用して、基になるソケットの TCP キープ アライブ オプションを、このメソッドに指定された値に設定します。

適用対象

こちらもご覧ください