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


TcpClient.LingerState Свойство

Определение

Возвращает или задает сведения о состоянии задерживающегося сокета.

public:
 property System::Net::Sockets::LingerOption ^ LingerState { System::Net::Sockets::LingerOption ^ get(); void set(System::Net::Sockets::LingerOption ^ value); };
public System.Net.Sockets.LingerOption? LingerState { get; set; }
public System.Net.Sockets.LingerOption LingerState { get; set; }
member this.LingerState : System.Net.Sockets.LingerOption with get, set
Public Property LingerState As LingerOption

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

А LingerOption. По умолчанию отключается отложение.

Примеры

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

// 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 ());
' Sets the amount of time to linger after closing, using the LingerOption public property.
Dim lingerOption As New LingerOption(True, 10)
tcpClient.LingerState = lingerOption

' Gets the amount of linger time set, using the LingerOption public property.
If tcpClient.LingerState.LingerTime = 10 Then
   Console.WriteLine(("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString()))
End If

Комментарии

Свойство 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 по умолчанию по-прежнему применяется и переопределяется.

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

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