Partager via


CAsyncSocket::Accept

Appelez la fonction membre pour recevoir une connexion sur un socket.

virtual BOOL Accept( 
   CAsyncSocket& rConnectedSocket, 
   SOCKADDR* lpSockAddr = NULL, 
   int* lpSockAddrLen = NULL  
);

Paramètres

  • rConnectedSocket
    Une référence identificateur un nouveau socket disponible pour la connexion.

  • lpSockAddr
    Un pointeur vers une structure de SOCKADDR qui accepte l'adresse du socket connexion, comme connu sur le réseau. Le format précis de l'argument d' lpSockAddr est déterminé par la famille d'adresses générée lorsque le socket a été créé. Si lpSockAddr et/ou lpSockAddrLen est égal à NULL, aucune information sur l'adresse distante de socket reçu n'est retournée.

  • lpSockAddrLen
    Un pointeur à la longueur de l'adresse dans lpSockAddr en octets. lpSockAddrLen est un paramètre de valeur-résultat : il doit initialement contenir la quantité d'espace pointée pointe vers lpSockAddr; au retour il contiendra la longueur réelle (en octets) de l'adresse retournée.

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é.

  • WSAEFAULT l'argument d' lpSockAddrLen est trop petit (moins que la taille d'une structure de SOCKADDR ).

  • WSAEINPROGRESS se bloque l'appel de Windows Sockets est en cours.

  • WSAEINVAL   Listen n'a pas été appelé avant reçoivent.

  • WSAEMFILE la file d'attente est vide à l'entrée pour recevoir et il n'existe aucun modèle disponible.

  • WSAENOBUFS aucun espace de mémoire tampon est disponible.

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

  • WSAEOPNOTSUPP le socket référencé n'est pas un type qui prend en charge le service connecté.

  • WSAEWOULDBLOCK le socket est marqué comme non bloquant et aucune connexion n'est présente pour être acceptée.

Notes

Cette routine récupère la première connexion dans la file d'attente des connexions en attente, crée un socket avec les mêmes propriétés que ce socket, et l'attache à rConnectedSocket. Si aucune connexion en attente n'est présente sur la file d'attente, Accepter retourne zéro et GetLastError retourne une erreur. Le socket reçu (rConnectedSocket) ne peut pas être utilisé pour accepter plus de connexions. Le socket d'origine reste ouvert et écouter.

L'argument lpSockAddr est un paramètre de sortie qui est rempli avec l'adresse du socket connexion, comme connu des communications produisent. Accepter est utilisé avec les types basés connexion- de socket tels que SOCK_STREAM.

Configuration requise

Header: afxsock.h

Voir aussi

Référence

CAsyncSocket, classe

Graphique de la hiérarchie

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect