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

Объект 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 свойстве.

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

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

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

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

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