Поделиться через


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

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