Partager via


CAsyncSocket::ShutDown

Appelez la fonction membre pour désactiver l'envoie, le reçoit, ou les deux du socket.

BOOL ShutDown( 
   int nHow = sends  
);

Paramètres

  • nHow
    Une balise qui décrit les types d'exécution ne seront plus autorisé, en utilisant les valeurs énumérées suivantes :

    • accepte = 0

    • envoie = 1

    • les deux = 2

Valeur de retour

Une valeur différente de zéro si la fonction est réussie ; sinon 0, et le code d'erreur spécifique peuvent être récupérés en appelant GetLastError. Les erreurs suivantes s'appliquent à cette fonction membre :

  • WSANOTINITIALISED A réussi AfxSocketInit doit se produire avant d'utiliser cette API.

  • WSAENETDOWN que l'implémentation de Windows Sockets l'a détecté que le sous-système réseau a échoué.

  • WSAEINVAL   nHow n'est pas valide.

  • WSAEINPROGRESS se bloque l'exécution de Windows Sockets est en cours.

  • WSAENOTCONN le socket n'est pas connecté (SOCK_STREAM uniquement).

  • WSAENOTSOCK le modèle n'est pas un socket.

Notes

ShutDown est utilisé sur les types de sockets pour désactiver la réception, communication, ou les deux. Si nHow est 0, suivant le reçoit du socket sera rejeté. Cela n'a aucun effet sur les couches du protocole inférieure.

Pour le protocole TCP (TCP), la fenêtre TCP n'est pas modifiée et les données entrantes seront reçues (mais pas accepté) jusqu'à ce que la fenêtre soit atteinte. Pour le protocole UDP (UDP), les datagrammes entrants sont acceptés et mis en file d'attente. En aucun cas un à en-tête pack d'erreur d'ICMP est généré. Si nHow est 1, suivant envoie sont supprimés. Pour les sockets TCP, un AILERON sera envoyé. La configuration nHow à 2 désactive l'envoie et reçoit la manière décrite ci-dessus.

Notez qu' ShutDown ne ferme pas de socket, et les ressources liées au socket ne seront pas libérées tant que Fermer soit appelé. Une application ne doit pas dépendre pouvoir réutiliser un socket après qu'il a été désactivé. En particulier, une implémentation de Windows Sockets n'est pas requis pour prendre en charge l'utilisation de Connecter sur un tel socket.

Exemple

Consultez l'exemple pour CAsyncSocket::OnReceive.

Configuration requise

Header: afxsock.h

Voir aussi

Référence

CAsyncSocket, classe

Graphique de la hiérarchie

CAsyncSocket::Connect

CAsyncSocket::Create