CAsyncSocket::IOCtl
BOOL IOCtl ( long lCommand, DWORD * lpArgument );
Valeur de retour
Différent de zéro si la fonction est réussie ; sinon, 0 et un code d'erreur spécifique peuvent être récupérée par appeler GetLastError. Les erreurs suivantes s'appliquent à cette fonction membre:
-
WSA&NOTINITIALISEDnbsp ; Un succès AfxSocketInit doit se produire avant d'utiliser cette API.
-
WSAE&NETDOWNnbsp ; La mise en œuvre des Sockets Windows a détecté que le sous-système réseau n'a pas.
-
WSAEI&NVALnbsp ;lCommand n'est pas une commande valide, lpArgument n'est pas un paramètre acceptable pour lCommandou la commande n'est pas applicable pour le type de socket fourni.
-
WSAEI&NPROGRESSnbsp ; Une opération de blocage Windows Sockets est en cours.
-
WSAE&NOTSOCKnbsp ; Le descripteur n'est pas un socket.
Paramètres
lCommand
La commande à effectuer sur le socket.
lpArgument
Un pointeur vers un paramètre pour lCommand.
Remarques
Appelez cette fonction membre pour contrôler le mode de socket. Cette routine peut être utilisée sur un socket dans un État. Il est utilisé pour obtenir ou récupérer les paramètres d'exploitation associés à la socket, indépendant du sous-système de protocole et la communication. Les commandes suivantes sont prises en charge:
-
FIO&NBIOnbsp ; Activer ou désactiver le mode non bloquant sur le socket. Le paramètre lpArgument pointe vers un DWORD, qui est différent de zéro si le mode non bloquant doit être activé et zéro si elle doit être désactivée. Si AsyncSelect a été publié sur un socket, toute tentative d'utilisation de IOCtl pour définir le socket en mode blocage échouera avec WSAEINVAL. Pour définir le socket en mode blocage et empêcher l'erreur WSAEINVAL , une application doit tout d'abord désactiver AsyncSelect par appel AsyncSelect avec le paramètre lEvent égal à 0, puis appelez IOCtl.
-
FIO&NREADnbsp ; Déterminer le nombre maximal d'octets qui peut être lu avec un appel de la réception de ce socket. Le paramètre lpArgument pointe vers un DWORD dans quels magasins IOCtl le résultat. Si ce socket est de type SOCK_STREAM, FIONREAD retourne la quantité totale de données qui peuvent être lus en une seule réception; C'est normalement le même que la quantité totale de données en file d'attente sur la socket. Si ce socket est de type SOCK_DGRAM, FIONREAD retourne que la taille du premier datagramme en file d'attente sur la socket.
-
SIOCATMARKnbsp ; Déterminer si toutes les données hors-bande a été lue. Cela s'applique uniquement à un socket de type SOCK_STREAM , qui a été configuré pour la réception de toute donnée d'out-of-band (SO_OOBI&NLINE) en ligne. Si aucune données out-of-band ne sont en attente d'être lu, l'opération retourne zéro. Sinon, elle retourne 0, et la prochaine réception ou ReceiveFrom effectué sur le socket permettra d'extraire certaines ou toutes les données qui précèdent la « marque » ; l'application doit utiliser l'opération SIOCATMARK pour déterminer si les données restent. Si il n'y a aucune données normales précédant les données (out-of-band) « urgentes », il sera reçu dans l'ordre. (Notez qu'une réception ou ReceiveFrom se mélangent jamais les données hors-bande et normales dans le même appel.) Le paramètre lpArgument pointe vers un DWORD dans quels magasins IOCtl le résultat.
Cette fonction est un sous-ensemble ioctl() dans Berkeley sockets. En particulier, il n'y a pas de commande qui est équivalent à FIOASYNC, tandis que SIOCATMARK est la commande de niveau socket seulement qui est pris en charge.
Aperçu de CAsyncSocket |nbsp ; Membres de la classe | Graphique de la hiérarchie
Voir aussi  ;CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::GetSockOpt, CAsyncSocket::SetSockOpt