Compartilhar via


WSPConnect

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função estabelece uma conexão para um ponto e troca dados conectar.

Syntax

int WSPConnect(
  SOCKET s,
  const struct sockaddr FAR* name,
  int namelen,
  LPWSABUF lpCallerData,
  LPWSABUF lpCalleeData,
  LPQOS lpSQOS,
  LPQOS lpGQOS,
  LPINT lpErrno 
);

Parameters

  • s
    [no] Descritor identificando um Soquete desconectado.
  • Nome
    [no] Nome do outro computador na rede para que o Soquete é estar conectado.
  • namelen
    [no] Comprimento das Nome.
  • lpCallerData
    [no] Ponteiro para dados de usuário que deve ser transferida para outro computador na rede durante o estabelecimento conexão.
  • lpCalleeData
    [out] Ponteiro para uma reserva para que qualquer usuário dados recebidos de outro computador na rede durante o estabelecimento conexão podem ser copiados.
  • lpSQOS
    [no] Reservado.
  • lpGQOS
    [no] Reservado.
  • 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.

Observação

A versão Windows Embedded CE desta função não suporte a troca de dados no tempo de conexão para o provedor serviço usar como padrão.O valor usar como padrão para lpCalleeData e lpCallerData deve ser NULL.

Em um bloqueio Soquete, o valor de retorno indica êxito ou falha da tentativa de conexão. Se a código de erro de retorno indica falha tentativa de conexão (that is, WSAECONNREFUSED, WSAENETUNREACH, WSAETIMEDOUT) o cliente Windows Sockets SPI pode chamar WSPConnect novamente para o mesmo Soquete.

A seguinte tabela mostra os códigos de erro possível.

Valor de erro Descrição

WSAENETDOWN

falha no subsistema de rede.

WSAEADDRINUSE

Endereço local do Soquete já está em uso e a Soquete não foi marcado para Permitir reutilização endereço com SO_REUSEADDR. Esse erro geralmente ocorre no tempo de BIND, mas pode ser atrasada até que essa função se a BIND Era um endereço curinga parcialmente (envolvendo ADDR_ANY) e se um endereço específico precisa ser confirmada no tempo desta função.

WSAEINPROGRESS

Bloquear chamar Soquetes do Windows é em andamento ou o serviço provedor ainda é processamento um função callback.

WSAEALREADY

Nonblocking WSPConnect chamar é em andamento na Soquete especificado.

Em ordem para preservar compatibilidade com versões anteriores, esse erro é relatado como WSAEINVAL à aplicativos 1.1 sockets do Windows (Winsock) que link ao arquivo Winsock.dll ou Wsock32.dll.

WSAEADDRNOTAVAIL

Endereço remoto não é um válido endereço (por exemplo, ADDR_ANY).

WSAEAFNOSUPPORT

Endereços de família especificado não podem ser usados com este Soquete.

WSAECONNREFUSED

Tentar conectar foi rejeitada.

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 tamanho do buffer para lpCalleeData é muito pequeno, ou o tamanho do buffer para lpCallerData é muito grande.

WSAEINVAL

Parâmetro s é um Soquete de escuta.

WSAEISCONN

Soquete já está conectados (orientado à conexão soquetes somente).

WSAENETUNREACH

Rede não pode ser alcançada a partir este hospedar nesse tempo.

WSAENOBUFS

Nenhuma espaço do buffer está disponível. O Soquete não pode ser conectada.

WSAENOTSOCK

O descritor não é um Soquete.

WSAEOPNOTSUPP

Especificações de fluxo não podem ser satisfeitas.

WSAEPROTONOSUPPORT

O lpCallerData Não é augment com suporte pelo provedor de serviço.

WSAETIMEDOUT

Tentativa de conexão atingiu o tempo limite sem estabelecer uma conexão.

WSAEWOULDBLOCK

Soquete está marcado como de não bloqueio e a conexão não pode ser concluída imediatamente. É possível selecionar a Soquete usando o WSPSelect função enquanto ele está se conectando usando o WSPSelect função para selecioná-lo para gravação.

WSAEACCES

Tentar conectar soquete de datagrama para transmitir endereço falha porque WSPSetSockOpt SO_BROADCAST não está habilitado.

Remarks

Essa função é usada para criar uma conexão para o destino especificado e para executar um número de outras operações auxiliares que ocorrer no tempo conectar as well. Se o Soquete, s, é desacoplado, os valores são atribuídos para o local exclusivo associação, o sistema e o Soquete está marcada como ligado.

Para os soquetes orientado à conexão (por exemplo, tipo SOCK_STREAM), um conexão ativa é iniciado para o hospedar especificado usando Nome (um endereço no espaço de nome da Soquete. (Para obter uma descrição detalhada, consulte WSPBind.) Quando esse chamar é concluído com êxito, o Soquete está pronto para enviar e receber dados. Se o membro endereço das Nome estrutura é todos os zeros, WSPConnect retornará o Erro WSAEADDRNOTAVAIL. Qualquer tentativa reconectar um conexão ativa falhará com o código de erro WSAEISCONN.

Para Connection-Oriented, de não bloqueio soquetes geralmente não é possível completo imediatamente a conexão. Em tais uma maiúsculas e minúsculas, essa função retorna com o erro WSAEWOULDBLOCK, mas a operação continua. Quando o resultado de êxito ou falha se torna conhecido, ele pode ser informado de várias maneiras dependendo como o cliente registra para notificação. Se o cliente usa WSPSelect, o sucesso é relatado na writefds Definir e falha é relatado na exceptfds Defina. Se o cliente usa WSPEventSelect, a notificação é anunciada com o código de erro e FD_CONNECT associado com o FD_CONNECT indica um motivo específico para falha ou sucesso.

Para um sem conexão Soquete (por exemplo, tipo SOCK_DGRAM), a operação executada por WSPConnect é estabelecer um endereço destino usar como padrão o Soquete pode ser usado com Enviar orientado a conexões subseqüente e receber (operaçõesWSPSend, WSPRecv). Quaisquer datagramas recebidos de um endereço diferente de endereço de destino especificado serão descartados. Se o membro endereço das Nome estrutura é todos os zeros, de Soquete será desconectada — o remoto usar como padrão endereço será indeterminado, caso WSPSend e WSPRecv Chamadas retornarão o código de erro WSAENOTCONN. No entanto, WSPSendTo e WSPRecvFrom ainda pode ser usado. O destino usar como padrão pode ser alterado pelo simplesmente chamado WSPConnect Novamente, mesmo se já estiver conectado a Soquete. Quaisquer datagramas enfileirado para confirmação serão descartados se Nome é diferente da anterior WSPConnect.

Para sem conexão soquetes, Nome Pode indicar qualquer válido endereço, incluindo um transmitir endereço. No entanto, para conectar a um transmitir endereço, deve ter um Soquete WSPSetSockOpt SO_BROADCAST habilitado. Caso contrário, WSPConnect falhará com o código de erro WSAEACCES.

Em sem conexão soquetes, trocar de usuário - a - usuário dados não é possível e a correspondente parâmetros serão ignorados silenciosamente.

O cliente Windows Sockets SPI é responsável por alocando qualquer espaço memória apontado diretamente ou indiretamente por qualquer um dos parâmetros-Especifica.

O lpCallerData é um parâmetro valor que contém os dados usuário a ser enviado along with o solicitação de conexão. Se lpCallerData é NULL, não dados usuário serão passados para o ponto. O lpCalleeData é um parâmetro resultado que fizer referência quaisquer dados usuário voltar passado de outro computador na rede como parte do estabelecimento de conexão. O lpCalleeData-> Len Contém inicialmente o comprimento da reserva alocados pelo cliente de Windows Sockets SPI e apontado pelo lpCalleeData-> buf. O lpCalleeData-> Len será definido como zero se não dados usuário tem sido passados voltar. O lpCalleeData informações será válido quando a operação conexão está completo. Para bloqueio soquetes, este será quando o WSPConnect função retorna. Para de não bloqueio soquetes, este será após a notificação FD_CONNECT ocorreu. Se lpCalleeData é NULL, não dados usuário serão passados voltar. O formato exato dos dados de usuário é específico para o família de endereços que o Soquete pertence e / ou os aplicativos envolvidos.

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

WSPAccept
WSPBind
WSPGetSockName
WSPGetSockOpt
WSPSocket
WSPSelect
WSPEventSelect
WSPEnumNetworkEvents