Socket.Close Método

Definição

Fecha a conexão Socket e libera todos os recursos associados.Closes the Socket connection and releases all associated resources.

Sobrecargas

Close()

Fecha a conexão Socket e libera todos os recursos associados.Closes the Socket connection and releases all associated resources.

Close(Int32)

Fecha a conexão de Socket e libera todos os recursos associados com um tempo limite especificado para permitir que os dados em fila sejam enviados.Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

Close()

Fecha a conexão Socket e libera todos os recursos associados.Closes the Socket connection and releases all associated resources.

public:
 void Close();
public void Close ();
member this.Close : unit -> unit
Public Sub Close ()

Exemplos

O exemplo de código a seguir fecha um Socket .The following code example closes a 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

O Close método fecha a conexão de host remoto e libera todos os recursos gerenciados e não gerenciados associados ao Socket .The Close method closes the remote host connection and releases all managed and unmanaged resources associated with the Socket. Após o fechamento, a Connected propriedade é definida como false .Upon closing, the Connected property is set to false.

Para protocolos orientados a conexão, é recomendável que você chame Shutdown antes de chamar o Close método.For connection-oriented protocols, it is recommended that you call Shutdown before calling the Close method. 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.

Se precisar chamar Close sem primeiro chamar Shutdown , você poderá garantir que os dados na fila de transmissão de saída serão enviados definindo a DontLinger Socket opção como false e especificando um intervalo de tempo limite diferente de zero.If you need to call Close without first calling Shutdown, you can ensure that data queued for outgoing transmission will be sent by setting the DontLingerSocket option to false and specifying a non-zero time-out interval. Close será bloqueado até que esses dados sejam enviados ou até que o tempo limite especificado expire.Close will then block until this data is sent or until the specified time-out expires. Se você definir DontLinger como false e especificar um intervalo de tempo limite de zero, Close o liberará a conexão e descartará automaticamente os dados de saída na fila.If you set DontLinger to false and specify a zero time-out interval, Close releases the connection and automatically discards outgoing queued data.

Observação

Para definir a DontLinger opção socket como false , crie um LingerOption , defina a propriedade Enabled como true e defina a LingerTime propriedade para o período de tempo limite desejado.To set the DontLinger socket option to false, create a LingerOption, set the enabled property to true, and set the LingerTime property to the desired time out period. Use-o LingerOption junto com a DontLinger opção socket para chamar o SetSocketOption método.Use this LingerOption along with the DontLinger socket option to call the SetSocketOption method.

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.

Confira também

Aplica-se a

Close(Int32)

Fecha a conexão de Socket e libera todos os recursos associados com um tempo limite especificado para permitir que os dados em fila sejam enviados.Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

public:
 void Close(int timeout);
public void Close (int timeout);
member this.Close : int -> unit
Public Sub Close (timeout As Integer)

Parâmetros

timeout
Int32

Aguardar até timeout segundos para enviar os dados restantes e, em seguida, fechar o soquete.Wait up to timeout seconds to send any remaining data, then close the socket.

Exemplos

O exemplo de código a seguir demonstra como fechar um Socket .The following code example demonstrates how to close a 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

O Close método fecha a conexão de host remoto e libera todos os recursos gerenciados e não gerenciados associados ao Socket .The Close method closes the remote host connection and releases all managed and unmanaged resources associated with the Socket. Após o fechamento, a Connected propriedade é definida como false .Upon closing, the Connected property is set to false.

Para protocolos orientados a conexão, é recomendável que você chame Shutdown antes de chamar Close .For connection-oriented protocols, it is recommended that you call Shutdown before calling Close. 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.

Se precisar chamar Close sem primeiro chamar Shutdown , você poderá garantir que os dados na fila de transmissão de saída serão enviados definindo a DontLinger opção como false e especificando um intervalo de tempo limite diferente de zero.If you need to call Close without first calling Shutdown, you can ensure that data queued for outgoing transmission will be sent by setting the DontLinger option to false and specifying a non-zero time-out interval. Close será bloqueado até que esses dados sejam enviados ou até que o tempo limite especificado expire.Close will then block until this data is sent or until the specified time-out expires. Se você definir DontLinger como false e especificar um intervalo de tempo limite de zero, Close o liberará a conexão e descartará automaticamente os dados de saída na fila.If you set DontLinger to false and specify a zero time-out interval, Close releases the connection and automatically discards outgoing queued data.

Observação

Para definir a DontLinger opção socket como false , crie um LingerOption , defina a propriedade Enabled como true e defina a LingerTime propriedade para o período de tempo limite desejado.To set the DontLinger socket option to false, create a LingerOption, set the enabled property to true, and set the LingerTime property to the desired time-out period. Use-o LingerOption junto com a DontLinger opção socket para chamar o SetSocketOption método.Use this LingerOption along with the DontLinger socket option to call the SetSocketOption method.

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.

Confira também

Aplica-se a