Compartilhar via


Socket.Close Método

Definição

Fecha a conexão Socket e libera todos os recursos associados.

Sobrecargas

Close()

Fecha a conexão Socket e libera todos os recursos associados.

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.

Close()

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Fecha a conexão Socket e libera todos os recursos associados.

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.

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. Ao fechar, a Connected propriedade é definida falsecomo .

Para protocolos orientados a conexão, é recomendável que você chame Shutdown antes de chamar o Close método . Isso garante que todos os dados sejam enviados e recebidos no soquete conectado antes de serem fechados.

Se você precisar chamar Close sem chamar Shutdownprimeiro , poderá garantir que os dados enfileirados para transmissão de saída sejam enviados definindo a opção DontLingerSocket como false e especificando um intervalo de tempo limite diferente de zero. Close em seguida, bloqueará até que esses dados sejam enviados ou até que o tempo limite especificado expire. Se você definir DontLinger como false e especificar um intervalo de tempo limite zero, Close liberará a conexão e descartará automaticamente os dados na fila de saída.

Observação

Para definir a opção DontLinger de soquete como false, crie um LingerOption, defina a propriedade habilitada como truee defina a LingerTime propriedade como o período de tempo limite desejado. Use isso LingerOption junto com a opção DontLinger de soquete para chamar o SetSocketOption método .

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.

Confira também

Aplica-se a

Close(Int32)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

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.

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

Aguarde até timeout milissegundos para enviar os dados restantes e feche o soquete.

Exemplos

O exemplo de código a seguir demonstra como fechar um 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. Ao fechar, a Connected propriedade é definida falsecomo .

Para protocolos orientados a conexão, é recomendável que você chame Shutdown antes de chamar Close. Isso garante que todos os dados sejam enviados e recebidos no soquete conectado antes de serem fechados.

Se você precisar chamar Close sem chamar Shutdownprimeiro , poderá garantir que os dados enfileirados para transmissão de saída sejam enviados definindo a opção DontLinger como false e especificando um intervalo de tempo limite diferente de zero. Close em seguida, bloqueará até que esses dados sejam enviados ou até que o tempo limite especificado expire. Se você definir DontLinger como false e especificar um intervalo de tempo limite zero, Close liberará a conexão e descartará automaticamente os dados na fila de saída.

Observação

Para definir a opção DontLinger de soquete como false, crie um LingerOption, defina a propriedade habilitada como truee defina a LingerTime propriedade como o período de tempo limite desejado. Use isso LingerOption junto com a opção DontLinger de soquete para chamar o SetSocketOption método .

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.

Confira também

Aplica-se a