Прочитать на английском

Поделиться через


TcpClient.LingerState Свойство

Определение

Получает или задает информацию о состоянии задержки связанного сокета.

C#
public System.Net.Sockets.LingerOption? LingerState { get; set; }
C#
public System.Net.Sockets.LingerOption LingerState { get; set; }

Значение свойства

Объект LingerOption. По умолчанию режим задержки отключен.

Примеры

В следующем примере кода задается и возвращается время затяжки сокетов.

C#
// sets the amount of time to linger after closing, using the LingerOption public property.
LingerOption lingerOption = new LingerOption (true, 10);

tcpClient.LingerState = lingerOption;

// gets the amount of linger time set, using the LingerOption public property.
if (tcpClient.LingerState.LingerTime == 10)
    Console.WriteLine ("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString ());

Комментарии

Свойство LingerState изменяет поведение Close метода. Это свойство при установке изменяет условия, при которых Winsock может сбросить подключение. Сброс подключения по-прежнему может происходить в зависимости от поведения протокола IP.

Это свойство управляет периодом времени, в течение времени, когда tcp-подключение будет оставаться открытым после вызова метода Close , когда данные остаются для отправки. При вызове Write метода данные помещаются в исходящий сетевой буфер. Это свойство можно использовать для отправки этих данных на удаленный узел до того, Close как метод разопустит подключение.

Чтобы включить затяжку, создайте LingerOption экземпляр, содержащий нужные значения, и присвойте свойству LingerState значение этого экземпляра.

В следующей таблице описывается поведение Close метода для возможных значений Enabled свойства и свойства, LingerTime хранящегося в свойстве LingerState .

LingerState.Enabled LingerState.LingerTime Поведение
false (отключено), значение по умолчанию Время ожидания неприменимо (по умолчанию). Пытается отправить отложенные данные до истечения времени ожидания протокола IP по умолчанию.
true (включено) Ненулевое время ожидания Пытается отправить отложенные данные, пока не истечет указанное время ожидания, и в случае сбоя попытки Winsock сбрасывает подключение.
true (включено) Нулевое время ожидания. Удаляет все ожидающие данные, а Winsock сбрасывает подключение.

Стек IP-адресов вычисляет период времени ожидания протокола IP по умолчанию для использования на основе времени кругового пути подключения. В большинстве случаев время ожидания, вычисленное стеком, имеет большее значение, чем определенное приложением. Это поведение по умолчанию для сокета, LingerState если свойство не задано.

LingerTime Если свойство, хранящееся в свойстве LingerState , превышает время ожидания протокола IP по умолчанию, время ожидания протокола IP по умолчанию будет по-прежнему применяться и переопределяться.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

См. также раздел