ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
啟用或停用 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,表示會使用所指定 keepAliveTime
和 keepAliveInterval
值來啟用 TCP 連線的 TCP 持續連線選項。
如果設定為 false,則表示會停用 TCP 保持連接選項,並忽略其餘的參數。
預設值為 false。
- keepAliveTime
- Int32
指定第一個 Keep-Alive 封包傳送之前的無活動逾時 (以毫秒為單位)。
這個值必須大於 0。 如果傳遞的值小於或等於零,則擲回 ArgumentOutOfRangeException。
- keepAliveInterval
- Int32
指定若未接收認可,後續 Keep-Alive 封包傳送的間隔 (以毫秒為單位)。
這個值必須大於 0。 如果傳遞的值小於或等於零,則擲回 ArgumentOutOfRangeException。
例外狀況
keepAliveTime
或 keepAliveInterval
參數的指定值會小於或等於 0。
備註
應用程式可以要求 TCP/IP 提供者能夠在 TCP 連線上使用保持運作封包。 預設值是停用 TCP 連線上使用保持運作封包。
初始化 TCP 套接字時的預設設定會將 keep-alive 逾時設定為 2 小時,並將 keep-alive 間隔設定為 1 秒。 參數 keepAliveTime
會指定逾時,以毫秒為單位,在傳送第一個保持運作封包之前,沒有活動。 如果未收到通知,參數 keepAliveInterval
會指定連續的保持連線封包傳送間隔,以毫秒為單位。 無法變更保持運作探查的數目,且設定為 10。
如果因為保持運作而捨棄 TCP 連線,則會SocketErrorNetworkReset將 傳回 至 套接字上進行中的任何呼叫,而後續的任何呼叫都會失敗,且任何後續的呼叫都會失敗SocketErrorNotConnected。