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 .

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

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

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

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

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