Socket.Shutdown(SocketShutdown) Metodo

Definizione

Disabilita le operazioni di invio e di ricezione su un 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)

Parametri

how
SocketShutdown

Uno dei valori SocketShutdown che specifica che l'operazione non sarà più consentita.

Eccezioni

Si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

Esempio

Nell'esempio di codice seguente viene Shutdown usato per disabilitare .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

Commenti

Quando si usa un oggetto orientato Socketalla connessione, chiamare sempre il Shutdown metodo prima di chiudere .Socket Ciò garantisce che tutti i dati vengano inviati e ricevuti nel socket connesso prima che venga chiuso.

Chiamare il Close metodo per liberare tutte le risorse gestite e non gestite associate a Socket. Non tentare di riutilizzare l'oggetto dopo la Socket chiusura.

La tabella seguente mostra i SocketShutdown valori di enumerazione validi per il how parametro.

Valore Descrizione
Send Disabilitare l'invio in questo Socketoggetto .
Ricevere Disabilitare la ricezione in questo Socketoggetto .
Entrambi Disabilitare sia l'invio che la ricezione in questo Socketoggetto .

Impostazione how per Send specificare che le chiamate successive a Send non sono consentite. Se si usa un oggetto senza Socketconnessione, specificando Send non avrà alcun effetto.

Impostazione how per Receive specificare che le chiamate successive a Receive non sono consentite. Questo non ha alcun effetto sui livelli di protocollo inferiori. Se si usa un protocollo orientato alla connessione, la connessione viene terminata se esistono una delle condizioni seguenti dopo una chiamata a Shutdown :

  • I dati si trovano nel buffer di rete in ingresso in attesa di ricevere.

  • Sono arrivati altri dati.

Se si usa un protocollo senza connessione, i datagrammi vengono accettati e accodati. Tuttavia, se non è disponibile spazio buffer per altri datagrammi in ingresso, verranno eliminati e non verrà restituito alcun errore al mittente. L'uso Shutdown in una connessione senza Socket connessione non è consigliato.

Impostazione how per Both disabilitare sia gli invii che le ricevute, come descritto in precedenza.

Nota

Se si riceve un oggetto SocketException quando si chiama il Shutdown metodo, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

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.

Si applica a

Vedi anche