Socket.Shutdown(SocketShutdown) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Désactive les envois et les réceptions sur 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)
Paramètres
- how
- SocketShutdown
Une des valeurs de SocketShutdown spécifiant l'opération qui ne sera plus autorisée.
Exceptions
Une erreur s’est produite pendant la tentative d’accès au socket.
Socket a été fermé.
Exemples
L’exemple de code suivant utilise Shutdown pour désactiver .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
Remarques
Lors de l’utilisation d’une méthode orientée Socketconnexion , appelez toujours la Shutdown méthode avant de fermer le Socket. Cela garantit que toutes les données sont envoyées et reçues sur le socket connecté avant sa fermeture.
Appelez la Close méthode pour libérer toutes les ressources managées et non managées associées à .Socket N’essayez pas de réutiliser le Socket après la fermeture.
Le tableau suivant montre les valeurs d’énumération SocketShutdown qui sont valides pour le how
paramètre.
Value | Description |
---|---|
Envoyer | Désactivez l’envoi sur ce Socket. |
Recevoir | Désactivez la réception sur ce Socket. |
Les deux | Désactivez l’envoi et la réception sur ce Socket. |
La définition how
de sur Send spécifie que les appels suivants à Send ne sont pas autorisés. Si vous utilisez un sans connexion Socket, la spécification n’aura Send aucun effet.
La définition how
de sur Receive spécifie que les appels suivants à Receive ne sont pas autorisés. Cela n’a aucun effet sur les couches de protocole inférieures. Si vous utilisez un protocole orienté connexion, la connexion est arrêtée si l’une des conditions suivantes existe après un appel à Shutdown :
Les données se situent dans la mémoire tampon réseau entrante en attente d’être reçues.
D’autres données sont arrivées.
Si vous utilisez un protocole sans connexion, les datagrammes sont acceptés et mis en file d’attente. Toutefois, si aucun espace tampon n’est disponible pour les datagrammes entrants supplémentaires, ils seront ignorés et aucune erreur ne sera retournée à l’expéditeur. L’utilisation Shutdown sur un sans Socket connexion n’est pas recommandée.
La définition how
de sur Both désactive à la fois les envois et les réceptions comme décrit ci-dessus.
Notes
Si vous recevez un lors de SocketException l’appel de la Shutdown méthode, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
Notes
Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.