CAsyncSocket::Receive

virtuel int Recevoir ( void * lpBuf, int nBufLen, int nFlags = 0 );

Valeur de retour

Si aucune erreur ne survient, Receive retourne le nombre d'octets reçus. Si la connexion a été fermée, elle renvoie 0. Sinon, la valeur SOCKET_ERROR est retournée, et un code d'erreur spécifique peut être récupéré par appeler GetLastError. Les erreurs suivantes s'appliquent à cette fonction membre:

Paramètres

lpBuf

Une mémoire tampon pour les données entrantes.

nBufLen

La longueur du lpBuf en octets.

nFlags

Spécifie la manière dont l'appel est effectué. La sémantique de cette fonction est déterminée par les options de socket et le paramètre nIndicateurs . Ce dernier est construit en combinant l'une des valeurs suivantes à l'opérateur C++ ou:

Remarques

Appelez cette fonction membre pour recevoir des données d'un socket. Cette fonction est utilisée pour le flux connecté ou sockets datagramme et est utilisée pour lire des données entrantes.

Pour les sockets de type SOCK_STREAM, autant d'informations est disponible jusqu'à la taille de la mémoire tampon est retourné. Si la socket a été configuré pour la réception en ligne des données hors-bande (option de socket SO_OOBINLINE) et out-of-band données non lus, n'out-of-band données seront retournées. L'application peut utiliser l'option de contrôle IOCtl SIOCATMARK ou OnOutOfBandData afin de déterminer si des données plus out-of-band restent à lire.

Pour les sockets datagramme, données on extrait le premier datagramme en attente, jusqu'à la taille de la mémoire tampon fournie. Si le datagramme est plus grand que le tampon, le tampon est rempli avec la première partie du datagramme, les données excédentaires sont perdues et Receive retourne la valeur SOCKET_ERROR avec le code d'erreur défini sur WSAEMSGSIZE. Si aucune donnée n'entrante est disponible à l'attache, la valeur SOCKET_ERROR est retournée avec le code d'erreur WSAEWOULDBLOCKla valeur. La fonction de rappel OnReceive peut servir à déterminer lors de l'arrivée de plus de données.

Si la socket est de type SOCK_STREAM et le côté distant a fermé la connexion avec élégance, une réception sera terminer immédiatement avec 0 octets reçus. Si la connexion a été réinitialisée, une réception échoue avec l'erreur WSAECONNRESET.

Aperçu de CAsyncSocket |nbsp ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send

Index