LingerOption(Boolean, Int32) Construtor
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Inicializa uma nova instância da LingerOption classe.
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 ligado após o Close() método ser chamado; caso contrário, false.
Exemplos
O exemplo seguinte faz com que um criado Socket anteriormente permaneça um segundo após chamar o Close método.
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)
Observações
Pode ainda haver dados disponíveis no buffer de rede de saída depois de fechar o Socket. Use o enable parâmetro para especificar se pretende que continue Socket a transmitir dados não enviados após o método de encerramento ser chamado. Use o seconds parâmetro para indicar quanto tempo gostaria que tentasse Socket transferir dados não enviados antes de expirar. Se especificar true para o enable parâmetro e 0 para o seconds parâmetro, ele Socket tentará enviar dados até não restar mais dados no buffer de rede de saída. Se especificares false para o enable parâmetro, eles Socket fecham imediatamente e quaisquer dados não enviados serão perdidos.
A tabela seguinte descreve o comportamento nos Socket.Close métodos e TcpClient.Close com base nos possíveis valores 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 (desativado), o valor padrão |
O time-out não é aplicável (por defeito). | Tentativas de enviar dados pendentes para um socket orientado à ligação (TCP, por exemplo) até que o tempo de expiração do protocolo IP predefinido. |
true (ativado) |
Um time-out não nulo | Tenta enviar dados pendentes até expirar o tempo especificado e, se a tentativa falhar, o Winsock reinicia a ligação. |
true (ativado) |
Um tempo morto. | Descarta quaisquer dados pendentes. Para soquetes orientados a ligação (TCP, por exemplo), o Winsock reinicia a ligação. |
A pilha IP calcula o período predefinido de timeout do protocolo IP a usar com base no tempo de ida e volta da ligação. Na maioria dos casos, o time-out calculado pela pilha é mais relevante do que um definido por uma aplicação. Este é o comportamento padrão de um socket quando a LingerState propriedade não está definida.
Quando a LingerTime propriedade armazenada nessa LingerState propriedade é definida como maior do que o time-out padrão do protocolo IP, o time-out padrão do protocolo IP continuará a aplicar-se e a sobrescrever.