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