共用方式為


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

定義

啟用或停用 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,則會使用指定的 keepAliveTimekeepAliveInterval 值來啟用 TCP 連線上的 TCP keep-alive 選項。

如果設定為 false,則會停用 TCP keep-alive 選項,並忽略其餘參數。

默認值為 false。

keepAliveTime
Int32

指定逾時,以毫秒為單位,在傳送第一個保持運作封包之前,沒有任何活動。

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

keepAliveInterval
Int32

指定間隔,以毫秒為單位,在未收到通知時,在連續的保持運作封包之間傳送。

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

例外狀況

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

備註

謹慎

WebRequestHttpWebRequestServicePointWebClient 已經過時,您不應該將它們用於新的開發。 請改用 HttpClient

應用程式可以要求 TCP/IP 提供者啟用在 TCP 連線上使用 Keep-alive 封包。 預設值是停用 TCP 連線上的 Keep-alive 封包使用。

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

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

適用於