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