Socket.Shutdown(SocketShutdown) Método
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.
Desabilita envios e recebimentos em um Socket.
public:
void Shutdown(System::Net::Sockets::SocketShutdown how);
public void Shutdown(System.Net.Sockets.SocketShutdown how);
member this.Shutdown : System.Net.Sockets.SocketShutdown -> unit
Public Sub Shutdown (how As SocketShutdown)
Parâmetros
- how
- SocketShutdown
Um dos SocketShutdown valores que especifica a operação que não será mais permitida.
Exceções
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Exemplos
O exemplo de código a seguir usa para desabilitar Shutdown o Socket.
try
{
aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
aSocket.Close();
}
Try
aSocket.Shutdown(SocketShutdown.Both)
Finally
aSocket.Close()
End Try
End Sub
Comentários
Ao usar uma conexão orientada Socket, sempre chame o Shutdown método antes de fechar o Socket. Isso garante que todos os dados sejam enviados e recebidos no soquete conectado antes de serem fechados.
Chame o Close método para liberar todos os recursos gerenciados e não gerenciados associados ao Socket. Não tente reutilizar após o Socket fechamento.
A tabela a seguir mostra os SocketShutdown valores de enumeração válidos para o how parâmetro.
| Valor | Descrição |
|---|---|
| Enviar | Desabilite o envio neste Socket. |
| Receber | Desabilite o recebimento neste Socket. |
| Ambas | Desabilite o envio e o recebimento neste Socket. |
A configuração how especifica Send que as chamadas Send subsequentes não são permitidas. Se você estiver usando uma conexão sem Socketconexão, especificar Send não terá efeito.
A configuração how especifica Receive que as chamadas Receive subsequentes não são permitidas. Isso não tem efeito em camadas de protocolo inferiores. Se você estiver usando um protocolo orientado à conexão, a conexão será encerrada se uma das seguintes condições existir após uma chamada para Shutdown :
Os dados estão no buffer de rede de entrada aguardando para serem recebidos.
Mais dados chegaram.
Se você estiver usando um protocolo sem conexão, os datagramas serão aceitos e enfileirados. No entanto, se nenhum espaço de buffer estiver disponível para datagramas de entrada adicionais, eles serão descartados e nenhum erro será retornado ao remetente. Não é recomendável usar Shutdown em uma conexão sem Socket conexão.
A configuração how para Both desabilitar os envios e os recebimentos, conforme descrito acima.
Observação
Se você receber um SocketException ao chamar o Shutdown método, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.