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 до 1 секунды 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 параметров и при создании экземпляра т:систем.нет.соккетс.линжероптион и задании в Socket.LingerState TcpClient.LingerState свойстве или.

enable seconds Поведение
false (отключено), значение по умолчанию Время ожидания неприменимо (по умолчанию). Пытается отправить ожидающие данные для сокета, ориентированного на соединение (например, TCP), пока не истечет время ожидания протокола IP по умолчанию.
true доступной Ненулевое время ожидания Пытается отправить ожидающие данные до истечения заданного времени ожидания. Если попытка не удалась, Winsock сбрасывает подключение.
true доступной Нулевое время ожидания. Отменяет все ожидающие данные. Для сокета, ориентированного на подключение (например, TCP), Winsock сбрасывает подключение.

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

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

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