CAsyncSocket::Accept
telefonar 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 identifica um novo soquete está disponível para conexão.lpSockAddr
Um ponteiro para um SOCKADDRestrutura de recebe o endereço de soquete de conexão sistema autônomo conhecido na rede.O formato exato do lpSockAddr argumento é determinado pela família do endereço estabelecida quando o soquete foi criado. If lpSockAddr e/ou lpSockAddrLen são iguais a NULO, em seguida, nenhuma informação sobre o endereço remoto do soquete aceito é retornado.lpSockAddrLen
Um ponteiro para o tamanho de endereço em lpSockAddr em bytes. The lpSockAddrLen é um parâmetro de resultado do valor: Inicialmente, ele deve conter a quantidade de espaço apontada por lpSockAddr; no retorno conterá o tamanho real (em bytes) de endereço retornado.
Valor de retorno
Diferente de zero se a função for bem-sucedida; caso contrário, 0, e um código de erro específico pode ser recuperado chamando GetLastError.Os seguintes erros se aplicam a essa função de membro:
WSANOTINITIALISED Um bem-sucedida AfxSocketInit deve ocorrer antes de usar essa API.
WSAENETDOWN A implementação do Windows Sockets detectou que o subsistema de rede falhou.
WSAEFAULT The lpSockAddrLen argumento é muito pequeno (menor que o dimensionar de um SOCKADDR estrutura).
WSAEINPROGRESS Uma telefonar de bloqueio de Windows Sockets está em andamento.
WSAEINVAL Listen não foi chamado antes de aceitar.
WSAEMFILE A fila está vazia durante a entrada para aceitar e nenhum descritores estão disponível.
WSAENOBUFS Nenhum espaço do buffer está disponível.
WSAENOTSOCK O descritor não é um soquete.
WSAEOPNOTSUPP O soquete referenciado não é um tipo que ofereça suporte ao serviço orientado a conexão.
WSAEWOULDBLOCK O soquete está marcado sistema autônomo não bloqueadas e nenhuma conexão está presente para que ela seja aceita.
Comentários
Essa rotina extrai a primeira conexão na fila de conexões pendentes, cria um novo soquete com sistema autônomo mesmas propriedades nesse soquete e anexa ao rConnectedSocket. Se nenhuma conexão pendente estiverem 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 em aberto e escuta.
O argumento lpSockAddr é um parâmetro de resultado que é preenchido com o endereço de soquete de conexão, também chamada à camada de comunicações. Aceitar é usado com tipos de soquete de conexão, sistema autônomo SOCK_STREAM.
Requisitos
Cabeçalho: afxsock.h