Compartilhar via


CAsyncSocket::Accept

Chamar essa função de membro para aceitar uma conexão em um soquete.

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

Parâmetros

  • rConnectedSocket
    Uma referência que identifica um novo soquete que está disponível para a conexão.

  • lpSockAddr
    Um ponteiro a estrutura de SOCKADDR que recebe o endereço de soquete conectando, conhecido como na rede. O formato exato do argumento de lpSockAddr é determinado pela família de endereço estabelecida quando o soquete foi criado. Se lpSockAddr e/ou lpSockAddrLen é igual a NULO, então nenhuma informação sobre o endereço remoto de soquete aceito é retornada.

  • lpSockAddrLen
    Um ponteiro ao comprimento do endereço em lpSockAddr em bytes. lpSockAddrLen é um parâmetro de valor resultado: inicialmente deve conter a quantidade de espaço apontada por lpSockAddr; o retorno conterá o comprimento real (em bytes) de endereço retornado.

Valor de retorno

Diferente de zero se a função é com êxito; se não 0, e um código de erro específico podem ser recuperados chamando GetLastError. Os seguintes erros se aplicam a essa função de membro:

  • WSANOTINITIALISED A AfxSocketInit com êxito deve ocorrer antes de usar este API.

  • WSAENETDOWN a implementação da do windows detectou que o subsistema de rede falhou.

  • WSAEFAULT o argumento de lpSockAddrLen é muito pequeno (menos que o tamanho de uma estrutura de SOCKADDR ).

  • A chamada da do windows de bloqueio deWSAEINPROGRESS A está em andamento.

  • WSAEINVAL   Listen não foi chamado antes de aceita.

  • WSAEMFILE a fila está vazia em cima de entrada aceitar e não há nenhum descritor disponível.

  • WSAENOBUFS nenhum espaço de buffer está disponível.

  • WSAENOTSOCK o descritor não for um soquete.

  • WSAEOPNOTSUPP o soquete referenciado não é um tipo que ofereça suporte ao serviço orientado a conexões.

  • WSAEWOULDBLOCK o soquete é marcado como nonblocking e nenhuma conexão estiver presente para ser aceita.

Comentários

Esta rotina na primeira conexão na fila de conexões pendentes, cria um novo soquete com as mesmas propriedades de este soquete, e anexá-la a rConnectedSocket. Se nenhuma conexão pendente está presente na fila, Aceitar retorna zero e GetLastError retorna um erro. O soquete aceito (rConnectedSocket) não pode ser usado para aceitar mais conexões. o soquete original permanece aberto e escutar.

O argumento lpSockAddr é um parâmetro de resultado que é preenchido com o endereço de soquete conectando, conhecido como a comunicação mergulha. Aceitar é usado com tipos baseados conexão- de soquete como SOCK_STREAM.

Requisitos

Cabeçalho: afxsock.h

Consulte também

Referência

Classe CAsyncSocket

Gráfico da hierarquia

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect