Compartilhar via


WSPBind

Windows Mobile SupportedWindows Embedded CE Supported

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