Condividi tramite


Socket.Close Metodo

Definizione

Chiude la connessione all'oggetto Socket e rilascia tutte le risorse associate.

Overload

Close()

Chiude la connessione all'oggetto Socket e rilascia tutte le risorse associate.

Close(Int32)

Chiude la connessione Socket e rilascia tutte le risorse associate con un timeout specificato in modo da consentire l'invio dei dati in coda.

Close()

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Chiude la connessione all'oggetto Socket e rilascia tutte le risorse associate.

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

Esempio

Nell'esempio di codice seguente viene chiuso un Socketoggetto .

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

Commenti

Il Close metodo chiude la connessione host remota e rilascia tutte le risorse gestite e non gestite associate a Socket. Al termine della chiusura, la Connected proprietà è impostata su false.

Per i protocolli orientati alla connessione, è consigliabile chiamare Shutdown prima di chiamare il Close metodo. Ciò garantisce che tutti i dati vengano inviati e ricevuti nel socket connesso prima che venga chiuso.

Se è necessario chiamare senza prima chiamare Close , è possibile assicurarsi che i dati accodati per la trasmissione in uscita vengano inviati impostando l'opzione DontLingerSocket su false e specificando un intervallo di timeout diverso da Shutdownzero. Close blocca quindi fino a quando questi dati non vengono inviati o fino alla scadenza del timeout specificato. Se si imposta DontLinger su false e si specifica un intervallo di timeout zero, Close rilascia la connessione e rimuove automaticamente i dati in coda in uscita.

Nota

Per impostare l'opzione DontLinger socket su false, creare un LingerOption, impostare la proprietà abilitata su truee impostare la LingerTime proprietà sul periodo di timeout desiderato. Usare questa opzione LingerOption insieme all'opzione DontLinger socket per chiamare il SetSocketOption metodo.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Vedi anche

Si applica a

Close(Int32)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Chiude la connessione Socket e rilascia tutte le risorse associate con un timeout specificato in modo da consentire l'invio dei dati in coda.

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

Parametri

timeout
Int32

Attendere fino a timeout millisecondi per inviare i dati rimanenti, quindi chiudere il socket.

Esempio

Nell'esempio di codice seguente viene illustrato come chiudere un Socketoggetto .

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

Commenti

Il Close metodo chiude la connessione host remota e rilascia tutte le risorse gestite e non gestite associate a Socket. Al termine della chiusura, la Connected proprietà è impostata su false.

Per i protocolli orientati alla connessione, è consigliabile chiamare prima di chiamare ShutdownClose. Ciò garantisce che tutti i dati vengano inviati e ricevuti nel socket connesso prima che venga chiuso.

Se è necessario chiamare senza prima Shutdownchiamare Close , è possibile assicurarsi che i dati accodati per la trasmissione in uscita vengano inviati impostando l'opzione DontLinger su false e specificando un intervallo di timeout diverso da zero. Close blocca quindi fino a quando questi dati non vengono inviati o fino alla scadenza del timeout specificato. Se si imposta DontLinger su false e si specifica un intervallo di timeout zero, Close rilascia la connessione e rimuove automaticamente i dati in coda in uscita.

Nota

Per impostare l'opzione DontLinger socket su false, creare un LingerOption, impostare la proprietà abilitata su truee impostare la LingerTime proprietà sul periodo di timeout desiderato. Usare questa opzione LingerOption insieme all'opzione DontLinger socket per chiamare il SetSocketOption metodo.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Vedi anche

Si applica a