WSPBind
9/8/2008
Essa função associa um local endereço (ou seja, nome) com um Soquete.
Syntax
int WSPBind(
SOCKET s,
const struct sockaddr FAR* name,
int namelen,
LPINT lpErrno
);
Parameters
- s
[no] Descritor identificando um desacoplado Soquete.
Nome
[no] Endereço para atribuir para o Soquete. O seguinte amostra de código mostra como o sockaddr estrutura está definida.sockaddr { _short sa_family; char sa_data[14]; };
Exceto para o sa_family membro, sockaddr Conteúdo é expressas em rede byte order. Em sockets do Windows (Winsock), o Nome parâmetro não é estritamente interpretado como um ponteiro para um sockaddr estrutura. É dessa maneira para compatibilidade Soquetes do Windows CAST. O real estrutura é interpretada de forma diferente no contexto das famílias endereço diferente. Os requisitos somente são que o primeiro u_short é a família de endereços e é o tamanho total da reserva de memória em bytes namelen.
- namelen
[no] Comprimento das Nome.
- lpErrno
[out] Ponteiro para o código de erro.
Return Value
Se não houver erro, essa função retornará zero. Caso contrário, ele retorna SOCKET_ERROR e um código de erro específico está disponível em lpErrno.
A seguinte tabela mostra os códigos de erro possível.
Valor de erro | Descrição |
---|---|
WSAENETDOWN |
falha no subsistema de rede. |
WSAEADDRINUSE |
Algum processo sobre a máquina tem já ligado para o mesmo endereço totalmente qualificado (de exemplo, IP endereço e porta na af_inet maiúsculas e minúsculas) e o Soquete não tem sido marcado para Permitir reutilização endereço com SO_REUSEADDR. (Consulte a opção Soquete SO_REUSEADDR em WSPSetSockOpt.) |
WSAEADDRNOTAVAIL |
Endereço não é um válido especificado endereço para esta máquina. |
WSAEFAULT |
Nome ou o namelen parâmetro não é um válido parte espaço de endereço de usuário, o namelen parâmetro é muito pequeno, o Nome parâmetro contém formato endereço incorreto para o associado família de endereços ou dois primeiros bytes da bloco de memória especificado pelo Nome não correspondem a família de endereços associado com o descritor Soquete s. |
WSAEINPROGRESS |
Função é chamada quando um callback é em andamento. |
WSAEINVAL |
Soquete já está ligado a um endereço. |
WSAENOBUFS |
Não há disponível buffers, muitas conexões. |
WSAENOTSOCK |
O descritor não é um Soquete. |
Remarks
Essa função é usada em um desconectado sem conexão ou Soquete Connection-Oriented, antes chamadas subseqüentes para WSPConnect Ou WSPListen. Quando um Soquete é criado com WSPSocket, ele existe em um espaço Nome (família de endereços), mas ele tem sem nome ou local atribuído endereço. WSPBind Estabelece o local associação do Soquete por atribuição um local de nomes para um sem nome Soquete.
Como um exemplo, em família de endereços o Internet, um nome consiste em três partes: o família de endereços, um endereço hospedar e um número porta que identifica o cliente Windows Sockets SPI. Em sockets do Windows (Winsock), o Nome parâmetro não é estritamente interpretado como um ponteiro para um sockaddr estrutura. Provedores de serviço são livre para considerá-lo como um ponteiro para um bloco de memória de tamanho namelen. Os primeiros bytes dois neste bloco (correspondente ao sa_family in a sockaddr declaração) deve conter o família de endereços que foi usado para criar a Soquete. Caso contrário, o erro WSAEFAULT será indicado.
Se um cliente Winsock SPI não cuidado que local endereço for atribuído a ele, ele irá especificar o manifesto constante valor ADDR_ANY Para o sa_data membro das Nome parâmetro. Isso instrui o provedor serviço para usar qualquer apropriado endereço rede. Para TCP/IP, se a porta for especificada como zero, o provedor serviço irá atribuir um exclusivo porta para o cliente Windows Sockets SPI com um valor entre 49152 e 65535. O cliente SPI pode usar WSPGetSockName Após WSPBind Para saber o endereço e a porta que foi atribuída a ele. No entanto, detalhes que se o endereço na Internet é igual a INADDR_ANY, WSPGetSockOpt Será Não necessariamente poderá fornecer o endereço até a Soquete estiver conectado, como vários endereços podem ser válido se a hospedar for de hospedagem múltipla.
Requirements
Header | ws2spi.h |
Library | Ws2.lib |
Windows Embedded CE | Windows CE .NET 4.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
sockaddr
WSPConnect
WSPListen
WSPGetSockName
WSPSetSockOpt
WSPSocket