LingerOption(Boolean, Int32) Construtor

Definição

Inicializa uma nova instância da classe 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)

Parâmetros

enable
Boolean

true para permanecer conectado após o método Close() ser chamado; caso contrário, false.

seconds
Int32

O número de segundos a permanecer conectado após o método Close() ser chamado.

Exemplos

O exemplo a seguir define um anteriormente criado Socket para demorar um segundo depois de chamar o Close método.

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)

Comentários

Ainda pode haver dados disponíveis no buffer de rede de saída depois que você fechar o Socket. Use o enable parâmetro para especificar se você deseja Socket continuar transmitindo dados não armazenados depois que o método close for chamado. Use o seconds parâmetro para indicar quanto tempo você gostaria de tentar transferir dados não utilizados antes de atingir o Socket tempo limite. Se você especificar true o enable parâmetro e 0 para o seconds parâmetro, tentará Socket enviar dados até que não haja nenhum dado no buffer de rede de saída. Se você especificar false o enable parâmetro, ele Socket será fechado imediatamente e todos os dados não especificados serão perdidos.

A tabela a seguir descreve o comportamento e os Socket.Close TcpClient.Close métodos com base nos valores e seconds parâmetros possíveis enable quando uma instância T:System.Net.Sockets.LingerOption é criada e definida na propriedade ouTcpClient.LingerState.Socket.LingerState

enable seconds Comportamento
false (desabilitado), o valor padrão O tempo limite não é aplicável (padrão). Tenta enviar dados pendentes para um TCP (soquete orientado à conexão, por exemplo) até que o tempo limite padrão do protocolo IP expire.
true (habilitado) Um tempo limite sem zero Tenta enviar dados pendentes até que o tempo limite especificado expire e, se a tentativa falhar, o Winsock redefinirá a conexão.
true (habilitado) Um tempo limite zero. Descarta todos os dados pendentes. Para o TCP (soquete orientado à conexão, por exemplo), o Winsock redefine a conexão.

A pilha de IP calcula o período de tempo limite do protocolo IP padrão a ser usado com base no tempo de ida e volta da conexão. Na maioria dos casos, o tempo limite calculado pela pilha é mais relevante do que um definido por um aplicativo. Esse é o comportamento padrão de um soquete quando a LingerState propriedade não está definida.

Quando a LingerTime propriedade armazenada na LingerState propriedade for definida como maior do que o tempo limite de tempo limite do protocolo IP padrão, o tempo limite padrão do protocolo IP ainda será aplicado e substituído.

Aplica-se a