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