Aracılığıyla paylaş


ServicePointManager.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:
 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)

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 yanlıştır.

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

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 herhangi biri ServicePoint 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

Ayrıca bkz.