Socket.Shutdown(SocketShutdown) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.