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 valores SocketShutdown que especifica a operação que não será mais permitida.
Exceções
Ocorreu um 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);
aSocket->Close();
}
catch (...)
{
aSocket->Close();
throw;
}
if ( aSocket->Connected )
{
Console::WriteLine( "Winsock error: {0}", Convert::ToString(
System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
try
{
aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
aSocket.Close();
}
Try
aSocket.Shutdown(SocketShutdown.Both)
Finally
aSocket.Close()
End Try
End Sub
Comentários
Ao usar um orientado a Socketconexão, 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 o 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. |
Ambos | Desabilite o envio e o recebimento neste Socket. |
Definir how
como Send especifica que chamadas subsequentes para Send não são permitidas. Se você estiver usando um sem Socketconexão, especificar Send não terá efeito.
Definir how
como Receive especifica que chamadas subsequentes para Receive não são permitidas. Isso não tem efeito em camadas de protocolo inferiores. Se você estiver usando um protocolo orientado a 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 um sem Socket conexão.
A configuração how
para Both desabilita 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 emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.