LingerOption(Boolean, Int32) Конструктор
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса LingerOption.
public:
LingerOption(bool enable, int seconds);
public LingerOption(bool enable, int seconds);
new System.Net.Sockets.LingerOption : bool * int -> System.Net.Sockets.LingerOption
Public Sub New (enable As Boolean, seconds As Integer)
Параметры
- enable
- Boolean
- seconds
- Int32
Количество секунд, которые будут оставаться подключенными после Close() вызова метода.
Примеры
В следующем примере устанавливается ранее созданное Socket значение для linger одну секунду после вызова Close метода.
LingerOption myOpts = new LingerOption(true,1);
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, myOpts);
Dim myOpts As New LingerOption(True, 1)
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, _
myOpts)
Комментарии
После закрытия Socketбуфера исходящей сети могут быть доступны данные.
enable Используйте параметр, чтобы указать, хотите Socket ли продолжить передачу неотступных данных после вызова метода закрытия.
seconds Используйте параметр, чтобы указать, сколько времени вы хотите Socket передать неотступные данные до истечения времени ожидания. При указании true параметра и 0 для enableseconds параметра будет предпринята попытка отправить данные, Socket пока в исходящем сетевом буфере нет данных. При указании falseenable параметра Socket немедленно закрывается и все неотступные данные будут потеряны.
В следующей таблице описывается поведение и Socket.CloseTcpClient.Close методы на основе возможных значений enable и seconds параметров при создании и установке экземпляра T:System.Net.Sockets.LingerOption и задания в свойстве Socket.LingerStateTcpClient.LingerState .
enable |
seconds |
Поведение |
|---|---|---|
false (отключено), значение по умолчанию |
Время ожидания неприменимо (по умолчанию). | Пытается отправить ожидающие данные для сокета, ориентированного на подключение (НАПРИМЕР, TCP), пока не истекает время ожидания протокола IP по умолчанию. |
true (включено) |
Ненулевое время ожидания | Пытается отправить ожидающие данные до истечения указанного времени ожидания, и если попытка завершается ошибкой, то Winsock сбрасывает подключение. |
true (включено) |
Нулевое время ожидания. | Отменяет все ожидающие данные. Для сокета, ориентированного на подключение (TCP, например), Winsock сбрасывает подключение. |
Стек IP вычисляет период времени ожидания протокола IP по умолчанию для использования на основе времени круговой поездки подключения. В большинстве случаев время ожидания, вычисленное стеком, более релевантно, чем одно, определенное приложением. Это поведение по умолчанию для сокета, если LingerState свойство не задано.
LingerTime Если свойство, хранящееся в LingerState свойстве, больше времени ожидания протокола IP по умолчанию, время ожидания протокола IP по умолчанию по-прежнему применяется и переопределяется.