LingerOption(Boolean, Int32) Construtor
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
.
Exemplos
O exemplo a seguir define um criado Socket anteriormente para permanecer 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 que o Socket continue transmitindo dados não utilizados depois que o método close for chamado. Use o parâmetro para indicar quanto tempo você gostaria que o Socket tentasse transferir dados não recuos antes de atingir o seconds
tempo limite. Se você especificar true
para o enable
parâmetro e 0 para o seconds
parâmetro , o Socket tentará enviar dados até que não haja nenhum dado no buffer de rede de saída. Se você especificar false
para o enable
parâmetro , o Socket fechará imediatamente e todos os dados não retornados serão perdidos.
A tabela a seguir descreve o comportamento nos Socket.Close métodos e TcpClient.Close com base nos valores possíveis dos enable
parâmetros e seconds
quando uma instância T:System.Net.Sockets.LingerOption é criada e definida na Socket.LingerState propriedade ou TcpClient.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 do protocolo IP padrão expire. |
true (habilitado) |
Um tempo limite diferente de zero | Tenta enviar dados pendentes até que o tempo limite especificado expire e, se a tentativa falhar, Winsock redefine 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 viagem 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 que o tempo limite do protocolo IP padrão, o tempo limite do protocolo IP padrão ainda será aplicado e substituído.