Language

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

定義

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

public:
 void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
public void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
member this.SetTcpKeepAlive : bool * int * int -> unit
Public 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 以下です。

注釈

Caution

WebRequest、 HttpWebRequest、 ServicePoint、 WebClient は廃止されており、新しい開発には使用しないでください。 HttpClient を代わりに使用します。

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

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

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

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

Note

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

適用対象