Socket.Shutdown(SocketShutdown) Método

Definição

Desabilita envios e recebimentos em um Socket.Disables sends and receives on a 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.One of the SocketShutdown values that specifies the operation that will no longer be allowed.

Exceções

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Exemplos

O exemplo de código a seguir usa Shutdown para desabilitar o Socket .The following code example uses Shutdown to disable the 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 conexão Socket , chame sempre o Shutdown método antes de fechar o Socket .When using a connection-oriented Socket, always call the Shutdown method before closing the Socket. Isso garante que todos os dados sejam enviados e recebidos no Soquete conectado antes de serem fechados.This ensures that all data is sent and received on the connected socket before it is closed.

Chame o Close método para liberar todos os recursos gerenciados e não gerenciados associados ao Socket .Call the Close method to free all managed and unmanaged resources associated with the Socket. Não tente reutilizar o Socket após fechar.Do not attempt to reuse the Socket after closing.

A tabela a seguir mostra os SocketShutdown valores de enumeração que são válidos para o how parâmetro.The following table shows the SocketShutdown enumeration values that are valid for the how parameter.

ValorValue DescriçãoDescription
EnviarSend Desabilite o envio Socket .Disable sending on this Socket.
ReceberReceive Desabilite o recebimento Socket .Disable receiving on this Socket.
AmbosBoth Desabilite tanto o envio quanto o recebimento Socket .Disable both sending and receiving on this Socket.

howA configuração para Send especifica que as chamadas subsequentes para Send não são permitidas.Setting how to Send specifies that subsequent calls to Send are not allowed. Se você estiver usando um sem conexão Socket , especificar Send não terá nenhum efeito.If you are using a connectionless Socket, specifying Send will have no effect.

howA configuração para Receive especifica que as chamadas subsequentes para Receive não são permitidas.Setting how to Receive specifies that subsequent calls to Receive are not allowed. Isso não tem efeito sobre camadas de protocolo inferiores.This has no effect on lower protocol layers. 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 :If you are using a connection-oriented protocol, the connection is terminated if either of the following conditions exist after a call to Shutdown :

  • Os dados estão no buffer de rede de entrada aguardando para serem recebidos.Data is in the incoming network buffer waiting to be received.

  • Mais dados chegaram.More data has arrived.

Se você estiver usando um protocolo sem conexão, os datagrams serão aceitos e enfileirados.If you are using a connectionless protocol, datagrams are accepted and queued. 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.However, if no buffer space is available for additional incoming datagrams, they will be discarded and no error will be returned to the sender. ShutdownO uso de em um Socket sem conexão não é recomendado.Using Shutdown on a connectionless Socket is not recommended.

howA configuração para Both desabilita tanto o envio quanto o recebimento, conforme descrito acima.Setting how to Both disables both sends and receives as described above.

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.If you receive a SocketException when calling the Shutdown method, use the SocketException.ErrorCode property to obtain the specific error code. 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.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Aplica-se a

Confira também