accept (Windows Sockets)
9/8/2008
Essa função permite que um tentativa de conexão de entrada em um Soquete.
Syntax
SOCKET accept(
SOCKET s,
struct sockaddr FAR* addr,
int FAR* addrlen
);
Parameters
- s
[no] Descritor identificando um Soquete que foi colocado em um estado de escuta com o escutar função. A conexão, na verdade, é feita com o Soquete retornado por essa função.
- addr
[out] Opcional ponteiro para uma reserva que recebe o endereço da entidade de conexão, como conhecidos a camada de comunicação. O formato exato das addr parâmetro é determinado pelo família de endereços estabelecido quando a Soquete foi criado.
- addrlen
[out] Ponteiro opcional para um inteiro que contém o comprimento do addr.
Return Value
Se não houver erro, essa função retorna um valor de tipo SOCKET Esse é um descritor para a nova Soquete. Isso retornado valor é um identificador para o Soquete no qual o real conexão é feita.
O inteiro referido por addrlen contém inicialmente a quantidade de espaço apontado pelo addr. Em retorno, ele irá conter o real comprimento em bytes do endereço retornado.
Se um erro ocorrer, será retornado um valor de INVALID_SOCKET, e um código de erro específicos podem ser recuperadas por chamado WSAGetLastError. A seguinte tabela mostra a código de erro possível retornar valores.
Código de erro | Descrição |
---|---|
WSANOTINITIALISED |
Um bem-sucedido WSAStartup chamar deve ocorrer antes de usar essa função. |
WSAENETDOWN |
Falha no subsistema da rede. |
WSAEFAULT |
O addrlen parâmetro é muito pequeno ou addr não é um válido parte espaço de endereço o usuário. |
WSAEINTR. |
O Soquete foi fechada. |
WSAEINPROGRESS |
Um bloqueio é chamar sockets do Windows (Winsock) em andamento, ou o serviço provedor ainda é processamento um função callback. |
WSAEINVAL |
O escutar função não foi chamada prior to esta função. |
WSAEMFILE |
A fila for não vazia na entrada para esta função, e houver não descritores disponível. |
WSAENOBUFS |
Nenhuma espaço do buffer está disponível. |
WSAENOTSOCK |
O descritor não é um Soquete. |
WSAEOPNOTSUPP |
O relacionado Soquete não é um tipo que ofereça suporte ao serviço Connection-Oriented. |
WSAEWOULDBLOCK |
O Soquete é marcado como de não bloqueio e nenhuma conexão está presente para ser aceita. |
Remarks
Essa função extrai a primeira conexão sobre a fila de pendente conexões em Soquete s. Em seguida, ele cria um novo Soquete e retorna um identificador para o novo Soquete. O Soquete recém-criado é a Soquete que irá identificador o real conexão e tem as mesmas propriedades como Soquete s, incluindo o assíncrono eventos registrados com o WSAEventSelect função.
O aceitar função pode bloco o chamador até que uma conexão esteja presente se nenhum pendente conexões estão presentes na fila e o Soquete está marcado como bloqueio. Se o Soquete é marcado como de não bloqueio e nenhum pendente conexões estão presentes na fila, essa função retornará um erro conforme descrito no seguinte tabela. Após o bem-sucedido conclusão de aceitar Retorna um novo identificador Soquete, o Soquete aceita não pode ser usado para aceitar mais conexões. O original Soquete permanece aberto e ouve para solicitações nova conexão.
O addr parâmetro é um parâmetro de resultados que é concluído com o endereço da entidade de conexão, como conhecidos a camada de comunicação. O formato exato das addr parâmetro é determinado pelo família de endereços no qual a comunicação está ocorrendo. O addrlen parâmetro é um parâmetro value-result. Ele deve conter inicialmente o quantidade de espaço apontado pelo addr; Em retorno ele conterá o real comprimento (em bytes) do endereço retornado.
O aceitar função é usada com tipos Soquete Connection-Oriented como SOCK_STREAM.
Observação
Modo assíncrono transferir (ATM) não é com suporte em Windows Embedded CE.
Observações para Bluetooth
O aceitar função funciona da mesma para RFCOMM as for qualquer padrão soquetes implementação.
Requirements
Header | winsock2.h |
Library | Ws2.lib |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
bind (Windows Sockets)
connect (Windows Sockets)
listen
select
socket (Windows Sockets)
WSAAccept
WSAEventSelect
WSAGetLastError
WSAStartup