Condividi tramite


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 alla Socketconnessione, chiamare sempre il Shutdown metodo prima di chiudere .Socket In questo modo si garantisce che tutti i dati vengano inviati e ricevuti sul socket connesso prima della chiusura.

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.

Nella tabella seguente vengono illustrati i SocketShutdown valori di enumerazione validi per il how parametro .

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

L'impostazione how di su Send specifica che le chiamate successive a Send non sono consentite. Se si usa un oggetto senza Socketconnessione, l'impostazione Send non avrà alcun effetto.

L'impostazione how di su Receive specifica 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 una delle condizioni seguenti esiste dopo una chiamata a Shutdown :

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

  • 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. Non è consigliabile usare Shutdown in modalità senza connessione Socket .

L'impostazione how su Both disabilita sia gli invii che i messaggi ricevuti, 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 relativa al 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