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