Compartilhar via


Socket.Shutdown(SocketShutdown) Método

Definição

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.

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.

Aplica-se a

Confira também