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


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 = gcnew 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 {0}", tcpClient->LingerState->LingerTime );
// 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 по умолчанию будет по-прежнему применяться и переопределяться.

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

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