共用方式為


ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) 方法

定義

啟用或停用 TCP 連線的 Keep-Alive 選項。

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,表示會使用所指定 keepAliveTimekeepAliveInterval 值來啟用 TCP 連線的 TCP 持續連線選項。

如果設定為 false,則表示會停用 TCP 保持連接選項,並忽略其餘的參數。

預設值為 false。

keepAliveTime
Int32

指定第一個 Keep-Alive 封包傳送之前的無活動逾時 (以毫秒為單位)。

這個值必須大於 0。 如果傳遞的值小於或等於零,則擲回 ArgumentOutOfRangeException

keepAliveInterval
Int32

指定若未接收認可,後續 Keep-Alive 封包傳送的間隔 (以毫秒為單位)。

這個值必須大於 0。 如果傳遞的值小於或等於零,則擲回 ArgumentOutOfRangeException

例外狀況

keepAliveTimekeepAliveInterval 參數的指定值會小於或等於 0。

備註

應用程式可以要求 TCP/IP 提供者能夠在 TCP 連線上使用保持運作封包。 預設值是停用 TCP 連線上使用保持運作封包。

初始化 TCP 套接字時的預設設定會將 keep-alive 逾時設定為 2 小時,並將 keep-alive 間隔設定為 1 秒。 參數 keepAliveTime 會指定逾時,以毫秒為單位,在傳送第一個保持運作封包之前,沒有活動。 如果未收到通知,參數 keepAliveInterval 會指定連續的保持連線封包傳送間隔,以毫秒為單位。 無法變更保持運作探查的數目,且設定為 10。

如果因為保持運作而捨棄 TCP 連線,則會SocketErrorNetworkReset將 傳回 至 套接字上進行中的任何呼叫,而後續的任何呼叫都會失敗,且任何後續的呼叫都會失敗SocketErrorNotConnected

適用於

另請參閱