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