WSAConnect

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função estabelece uma conexão para outro aplicativo Soquete e trocas conectar (Soquetes do Windows) dados.

Syntax

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

Parameters

  • s
    [no] Descritor identificando um Soquete desconectado.
  • Nome
    [no] Nome de Soquete no outro aplicativo para o qual conectar.
  • namelen
    [no] Comprimento do nome.
  • lpCallerData
    [no] Ponteiro para dados de usuário que deve ser transferida para o outro Soquete durante o estabelecimento conexão.
  • lpCalleeData
    [out] Ponteiro para dados de usuário que deve ser transferido voltar a partir de outro Soquete durante o estabelecimento conexão.
  • lpSQOS
    [no] Reservado.
  • lpGQOS
    [no] Reservado.

Return Value

Se não houver erro, essa função retornará zero. Se ocorre um erro, ele retorna SOCKET_ERROR e um código de erro específicos podem ser recuperadas por chamado de WSAGetLastError função. Em um bloqueio Soquete, o valor de retorno indica êxito ou falha da tentativa de conexão.

Observação

O Windows Embedded CE usar como padrão TCP/UDP serviço provedor não tem suporte a troca de dados no tempo de conexão para o provedor serviço usar como padrão.lpCalleeData e lpCallerData deve ser NULL.

Com um de não bloqueio Soquete, tentativa de conexão não pode ser concluída imediatamente. Neste maiúsculas e minúsculas, WSAConnect Retornará SOCKET_ERROR e WSAGetLastError Retornará WSAEWOULDBLOCK. O aplicativo poderia executar o seguinte ações:

  • Uso Selecione Para determinar a conclusão de solicitação de conexão, verificando se o Soquete é gravável.
  • Se seu aplicativo está usando WSAEventSelect Para indicar interesse em eventos conexão, em seguida, o associado objeto evento será sinalizado quando o connectoperation estiver completo (bem-sucedido ou não).

Para um de não bloqueio Soquete, até que a tentativa conexão concluir todas as chamadas subseqüentes para WSAConnect Sobre o mesmo Soquete falhará com o código de erro WSAEALREADY.

Se a código de erro de retorno indica falha tentativa de conexão (that is, WSAECONNREFUSED, WSAENETUNREACH ou WSAETIMEDOUT), o aplicativo pode chamar WSAConnect novamente para o mesmo Soquete. A seguinte tabela mostra uma lista dos códigos de erro possível.

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.

WSAEADDRINUSE

O local endereço da 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 durante a execução das BIND (Soquetes do Windows) função, mas ele pode ser adiada até a WSAConnect função se a BIND função opera em um endereço curinga parcialmente (envolvendo ADDR_ANY) e se um endereço específico precisa ser "Compromisso" No tempo da WSAConnect função.

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.

WSAEALREADY

Um de não bloqueio conectar/WSAConnect chamar é em andamento na Soquete especificado.

WSAEADDRNOTAVAIL

O remoto endereço não é um válido endereço (such as ADDR_ANY).

WSAEAFNOSUPPORT

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

WSAECONNREFUSED

A tentativa connectwas rejeitadas.

WSAEFAULT

O Nome Ou 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

O parâmetro s é um Soquete de escuta.

WSAEISCONN

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

WSAENETUNREACH

A rede não pode ser alcançada através deste host neste momento.

WSAENOBUFS

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

WSAENOTSOCK

O descritor não é um Soquete.

WSAEOPNOTSUPP

As estruturas especificadas em lpSQOS e lpGQOS não pode ser satisfeito.

WSAEPROTONOSUPPORT

O lpCallerData argumento não é com suporte pelo provedor de serviço.

WSAETIMEDOUT

Uma tentativa para connecttimed limite sem estabelecer uma conexão.

WSAEWOULDBLOCK

O Soquete está marcado como de não bloqueio e a conexão não pode ser concluída imediatamente.

WSAEACCES

Uma tentativa Soquete connectdatagram para transmitir endereço falha porque Setsockopt 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 connecttime. Se 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 externa usando nome (um endereço no espaço de nome da Soquete). Quando esse chamar é concluído com êxito, o Soquete está pronto para enviar e receber dados. Se a pasta endereço parâmetro da Nome estrutura é todos os zeros, WSAConnect retornará o Erro WSAEADDRNOTAVAIL. Qualquer tentativa reconectar um conexão ativa falhará com o código de erro WSAEISCONN.

Para de não bloqueio Connection-Oriented soquetes, geralmente não é possível completo imediatamente a conexão. Em tais casos, essa função retorna o erro WSAEWOULDBLOCK. No entanto, 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 o Selecione função, o sucesso é reportado no conjunto de writefds e falha é relatada no conjunto de exceptfds. Se o cliente usa WSAEventSelect, 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 WSAConnect é simplesmente estabelecer um endereço destino usar como padrão para que a Soquete pode ser usado em enviar orientado a conexões subseqüente e receber (operaçõesEnviar, WSASend, Recv, e WSARecv). Quaisquer datagramas recebidos de um endereço diferente de endereço de destino especificado serão descartados. Se a todo Nome estrutura é toda de zeros (não apenas a endereço parâmetro da Nome estrutura), e em seguida, o Soquete será desconectada. Em seguida, o remoto usar como padrão endereço será indeterminado, caso Enviar/WSASend e Recv/WSARecv Chamadas retornarão o código de erro WSAENOTCONN. No entanto, SendTo/WSASendTo e recvfrom/WSARecvFrom ainda pode ser usado. O destino usar como padrão pode ser alterado pelo simplesmente chamado WSAConnect Novamente, mesmo se já estiver conectado a Soquete. Qualquer enfileirado datagramas para confirmação serão descartados se nome é diferente da anterior WSAConnect chamar.

Para sem conexão soquetes, nome podem indicam qualquer válido endereço, incluindo um transmitir endereço. No entanto, para connectto um transmitir endereço, deve ter um Soquete setsockopt (Soquetes do Windows) SO_BROADCAST habilitado. Caso contrário, WSAConnect 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 aplicativo é responsável por alocando qualquer espaço memória apontado diretamente ou indiretamente por qualquer um dos parâmetros-Especifica.

O lpCallerData parâmetro é um parâmetro valor que contém dados qualquer usuário que deve ser enviada along with o solicitação de conexão. Se lpCallerData é NULL, não dados usuário serão passados para o ponto. O lpCalleeData parâmetro é um parâmetro resultado que irá conter quaisquer dados usuário passado voltar a partir de outro Soquete como parte do estabelecimento de conexão em um WSABUF estrutura. O lpCalleeData-> Len membro contém inicialmente o comprimento da reserva alocados pelo aplicativo e apontado pelo lpCalleeData->buf. O lpCalleeData-> Len membro 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, a operação conexão completa quando WSAConnect Retorna. Para de não bloqueio soquetes, Conclusão 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 ao qual pertence o Soquete.

Requirements

Header winsock2.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

accept (Windows Sockets)
bind (Windows Sockets)
connect (Windows Sockets)
getsockname (Windows Sockets)
getsockopt (Windows Sockets)
recv
recvfrom
select
send
sendto
setsockopt (Windows Sockets)
socket (Windows Sockets)
WSAEventSelect
WSAGetLastError
WSARecv
WSARecvFrom
WSASend
WSASendTo
WSAStartup