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
Значение true
, чтобы объект оставался подключенным после вызова метода Close(); в противном случае — значение false
.
- seconds
- Int32
Количество секунд, в течение которого сохраняется подключение после вызова метода Close().
Примеры
В следующем примере задается ранее созданный Socket объект для затяжки на одну секунду Close после вызова метода .
LingerOption^ myOpts = gcnew LingerOption( true,1 );
mySocket->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts );
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 неотправленных данных после вызова метода close. Используйте параметр , seconds
чтобы указать, как долго вы хотите Socket , чтобы попытка передачи неотправленных данных до истечения времени ожидания. Если указать true
для enable
параметра и 0 для seconds
параметра, будет пытаться отправить данные, Socket пока в исходящем сетевом буфере не останется данных. Если указать false
для enable
параметра , Socket объект немедленно закроется, и все неотправленные данные будут потеряны.
В следующей таблице описано поведение Socket.Close методов и TcpClient.Close на основе возможных значений enable
параметров и seconds
при создании экземпляра T:System.Net.Sockets.LingerOption и его установке в свойстве Socket.LingerState или TcpClient.LingerState .
enable |
seconds |
Поведение |
---|---|---|
false (отключено), значение по умолчанию |
Время ожидания неприменимо (по умолчанию). | Пытается отправить ожидающие данные для сокета, ориентированного на подключение (например, TCP), пока не истечет время ожидания протокола IP по умолчанию. |
true (включено) |
Ненулевое время ожидания | Пытается отправить отложенные данные до истечения указанного времени ожидания, а если попытка завершается неудачно, Winsock сбрасывает подключение. |
true (включено) |
Нулевое время ожидания. | Отменяет все ожидающие данные. Для сокета, ориентированного на подключение (например, TCP), Winsock сбрасывает подключение. |
Стек IP-адресов вычисляет период времени ожидания протокола IP по умолчанию на основе времени кругового пути подключения. В большинстве случаев время ожидания, вычисленное стеком, имеет большее значение, чем время ожидания, определенное приложением. Это поведение по умолчанию для сокета LingerState , если свойство не задано.
LingerTime Если свойство, хранящееся в свойствеLingerState, больше времени ожидания ip-протокола по умолчанию, время ожидания протокола IP по умолчанию будет по-прежнему применяться и переопределяться.