Aracılığıyla paylaş


ServicePoint.SetTcpKeepAlive(Boolean, Int32, Int32) Yöntem

Tanım

TCP bağlantısında etkin tutma seçeneğini etkinleştirir veya devre dışı bırakır.

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)

Parametreler

enabled
Boolean

True olarak ayarlanırsa, tcp bağlantısındaki TCP etkin tutma seçeneği belirtilen keepAliveTime ve keepAliveInterval değerleri kullanılarak etkinleştirilir.

False olarak ayarlanırsa TCP etkin tutma seçeneği devre dışı bırakılır ve kalan parametreler yoksayılır.

Varsayılan değer false'tur.

keepAliveTime
Int32

İlk etkin tutma paketi gönderilene kadar etkinlik olmadan milisaniye cinsinden zaman aşımını belirtir.

Değer 0'dan büyük olmalıdır. Sıfırdan küçük veya sıfıra eşit bir değer geçirilirse bir ArgumentOutOfRangeException oluşturulur.

keepAliveInterval
Int32

Onay alınmadığında birbirini izleyen etkin tutma paketlerinin gönderileceği zaman arasındaki aralığı milisaniye olarak belirtir.

Değer 0'dan büyük olmalıdır. Sıfırdan küçük veya sıfıra eşit bir değer geçirilirse bir ArgumentOutOfRangeException oluşturulur.

Özel durumlar

veya keepAliveInterval parametresi için keepAliveTime belirtilen değer 0'dan küçük veya buna eşit.

Açıklamalar

Dikkat

WebRequest, HttpWebRequest, ServicePointve WebClient kullanım dışıdır ve bunları yeni geliştirme için kullanmamalısınız. Bunun yerine HttpClient kullanın.

Bir uygulama, TCP/IP sağlayıcısının TCP bağlantısında etkin tutma paketlerinin kullanımını etkinleştirmesini isteyebilir. Varsayılan değer, TCP bağlantısında etkin tutma paketlerinin kullanımı devre dışıdır.

TCP yuvası başlatıldığında varsayılan ayarlar, etkin tutma zaman aşımını 2 saate ve etkin tutma aralığını 1 saniyeye ayarlar. keepAliveTime parametresi, ilk etkin tutma paketi gönderilene kadar etkinlik olmadan zaman aşımını milisaniye olarak belirtir. keepAliveInterval parametresi, onay alınmadığında birbirini izleyen etkin tutma paketlerinin ne zaman gönderileceği arasındaki aralığı milisaniye olarak belirtir. Etkin tutma yoklamalarının sayısı değiştirilemez ve 10 olarak ayarlanır.

Canlı tutma işlemleri sonucunda bir TCP bağlantısı bırakılırsa, yuvada devam eden tüm çağrılara bir SocketErrorNetworkReset değeri döndürülür ve sonraki çağrılar NotConnectedile SocketError başarısız olur.

Bu yöntem iş parçacığı güvenli değildir. Aynı anda oluşturulan tüm yeni bağlantılar TCP etkin tutma için kısmen değiştirilmiş değerler görebilir.

Uyarı

.NET 9'dan bu yana, HttpWebRequest temel yuvadaki TCP etkin tutma seçeneklerini bu yönteme sağlanan değerlere ayarlamak için kullanır SocketsHttpHandler.ConnectCallback .

Şunlara uygulanır