Condividi tramite


CAsyncSocket::Accept

Chiamare la funzione membro per accettare una connessione a un socket.

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

Parametri

  • rConnectedSocket
    Un riferimento che identifica un nuovo socket disponibile per connessione.

  • lpSockAddr
    Un puntatore a una struttura SOCKADDR che riceve l'indirizzo del connettore, come definito in rete. Il formato esatto dell'argomento lpSockAddr è determinato dalla famiglia di indirizzi stabilita quando il socket è stato creato. Se lpSockAddr e/o lpSockAddrLen è uguale a NULL, pertanto nessuna informazione sull'indirizzo remoto di socket accettato viene restituita.

  • lpSockAddrLen
    Un puntatore alla lunghezza dell'indirizzo in lpSockAddr in byte. lpSockAddrLen è un parametro di un risultato: deve inizialmente contenere la quantità di spazio indicata da lpSockAddr; dopo conterrà l'effettiva lunghezza espressa in byte) dell'indirizzo restituito.

Valore restituito

Diverso da zero se la funzione ha esito positivo; in caso contrario 0 e un codice di errore specifico possono essere recuperati chiamando GetLastError. Gli errori seguenti si applicano a questa funzione membro:

  • WSANOTINITIALISED Al AfxSocketInit deve verificarsi prima di utilizzare questa API.

  • WSAENETDOWN che l'implementazione di Windows Sockets ha rilevato che il sottosistema di rete non è riuscita.

  • WSAEFAULT l'argomento lpSockAddrLen è troppo piccolo (minore della dimensione di una struttura SOCKADDR ).

  • WSAEINPROGRESS che blocca la chiamata di Windows Sockets è in corso.

  • WSAEINVAL   Listen non è stato richiamato prima di accettazione.

  • WSAEMFILE la coda è vuoto sulla voce accettare e non esistono descrittori disponibili.

  • WSAENOBUFS alcuno spazio nel buffer è disponibile.

  • WSAENOTSOCK il descrittore non è un socket.

  • IlWSAEOPNOTSUPP socket a cui si fa riferimento non è un tipo che servizio collegato supportate.

  • IlWSAEWOULDBLOCK socket è contrassegnato come non bloccante e non vi siano connessioni presenti essere accettate.

Note

Questa procedura consente la prima connessione alla coda di connessioni in corso, crea un nuovo socket con le stesse proprietà di questo socket e lo associa a rConnectedSocket. Se non sono disponibili connessioni in sospeso presenti nella coda, Accept restituisce zero e GetLastError restituisce un errore. Il socket accettato (rConnectedSocket) non può essere utilizzato per accettare più connessioni. Il socket originale rimane aperto e ascolto.

L'argomento lpSockAddr è un parametro di output che viene riempito con un indirizzo del connettore, noto come le comunicazioni livelli. Accept viene utilizzato con i tipi basati su connessione socket come SOCK_STREAM.

Requisiti

Header: afxsock.h

Vedere anche

Riferimenti

Classe CAsyncSocket

Grafico delle gerarchie

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect