WSAJoinLeaf

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função associa um nó folha em uma sessão multiponto e troca dados conectar.

Observação

WSAJoinLeaf não é com suporte pela usar como padrão TCP/UDP e sockets do Windows (Winsock) provedor em Windows Embedded CE.No entanto, terceiros pode implementar suas possui provedor e ter suporte para esta função se eles escolher.

Syntax

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

Parameters

  • s
    [no] Descritor identificando um Soquete multiponto.
  • Nome
    [no] Nome do outro computador na rede à qual o Soquete deve ser unida.
  • namelen
    [no] Comprimento de Nome.
  • lpCallerData
    [no] Ponteiro para dados de usuário que deve ser transferida para outro computador na rede durante o estabelecimento sessão multiponto.
  • lpCalleeData
    [out] Ponteiro para dados de usuário que deve ser transferido voltar de outro computador na rede durante o estabelecimento sessão multiponto.
  • lpSQOS
    [no] Ponteiro para as estruturas de Soquete s, um para cada direção.
  • lpGQOS
    [no] Reservado.
  • dwFlags
    [no] Sinalizadores para indicar que a Soquete está atuando como um remetente, destinatário ou ambos.

Return Value

Se não houver erro, essa função retorna um valor de tipo SOCKET Esse é um descritor para a Soquete multiponto recém-criado. Se ocorrer um erro, será retornado um valor de INVALID_SOCKET. Um código de erro específicos podem ser recuperadas por chamado WSAGetLastError.

Em um bloqueio Soquete, o valor de retorno indica êxito ou falha da operação de junção.

Com um de não bloqueio Soquete, bem-sucedido iniciação de uma operação junção é indicada por um retorno de UM válido descritor Soquete. Subseqüentemente, uma indicação FD_CONNECT será fornecida no original Soquete s Quando a operação junção concluído, ou ou caso contrário. O aplicativo deve usar WSAEventSelect com juros registrado para o evento FD_CONNECT em ordem para determinar quando a operação junção foi concluída. Em seguida, verifica o associado código de erro para determinar o sucesso ou falha da operação. O Selecione função não pode ser usada para determinar quando concluir a operação junção. Além disso, até que a sessão multiponto junção tentativa for concluído, todas as chamadas subseqüentes para WSAJoinLeaf Sobre o mesmo Soquete falhará com o código de erro WSAEALREADY. Após a WSAJoinLeaf operação é concluída com êxito, uma tentativa subseqüente geralmente falhará com o código de erro WSAEISCONN. Ocorre uma exceção à regra WSAEISCONN para um c_root Soquete que permite que root-INITIATED associações. Em tais uma maiúsculas e minúsculas, junção outra pode ser iniciada após uma prévia WSAJoinLeaf operação é concluída.

Se a código de erro de retorno indica que a sessão multiponto junção tentativa falha com códigos de erro WSAECONNREFUSED, WSAENETUNREACH ou WSAETIMEDOUT, o aplicativo pode chamar WSAJoinLeaf novamente para o mesmo Soquete.

A seguinte tabela mostra os valores de erro possível.

Erro Descrição

WSANOTINITIALISED

Um bem-sucedido WSAStartup chamar deve ocorrer antes de usar essa função.

WSAENETDOWN

Falha no subsistema da rede.

WSAEADDRINUSE

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

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 WSAJoinLeaf 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 junção forçada foi rejeitada.

WSAEFAULT

O 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, lpSQOS, e lpGQOS são muito pequena, ou o tamanho do buffer para lpCallerData é muito grande.

WSAEISCONN

O Soquete já é um membro da sessão a multiponto.

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 unida.

WSAENOTSOCK

O descritor não é um Soquete.

WSAEOPNOTSUPP

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

WSAEPROTONOSUPPORT

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

WSAETIMEDOUT

A tentativa tempo limite atingido junção limite sem estabelecer uma sessão multiponto.

Observação

WSAJoinLeaf não é com suporte para o usar como padrão TCP/UDP provedor e irá sempre retornam WSASYSCALLFAILURE.

Remarks

Essa função é usada para junção um nó folha para uma sessão multiponto e para executar um número de outras operações auxiliares que ocorrer no tempo junção sessão 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.

O WSAJoinLeaf função tem os mesmos parâmetros e semântica como WSAConnect exceto que ela retorna um descritor Soquete (as in WSAAccept), e ele tem um adicionais dwFlags parâmetro. Somente soquetes multiponto criados usando WSASocket Com o apropriado definir sinalizadores multiponto pode ser usado para parâmetro de entrada s Nesta função. O descritor Soquete retornado não estarão utilizável até após concluir a operação junção. De exemplo, se estiver em de não bloqueio o Soquete modo após um correspondente indicação FD_CONNECT foi recebida WSAEventSelect sobre a original Soquete s, closesocket pode ser chamado neste novo descritor Soquete para cancelar uma pendente operação junção. Um aplicativo raiz em uma sessão multiponto pode chamar WSAJoinLeaf Uma ou mais vezes na ordem para adicionar um número de nós folha; No entanto, podem ser at Most solicitação de conexão multiponto um pendente em um tempo.

Para 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 um como- ainda descritor inutilizável Soquete e continua a operação. Não há nenhuma código de erro such as WSAEWOULDBLOCK in este maiúsculas e minúsculas porque a função efetivamente retornou um bem-sucedido indicação iniciar. Quando o resultado final sucesso ou falha torna-se conhecido, ele pode ser reportado através WSAEventSelect. Em ambos os maiúsculas e minúsculas, 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. O Selecione função não pode ser usada para notificação de conclusão detecção para WSAJoinLeaf.

O descritor Soquete retornado por WSAJoinLeaf é diferente dependendo se a entrada Soquete descritor, s, é um c_root ou um c_leaf. Quando usado com um Soquete c_root, o Nome parâmetro designa um nó específico folha a ser adicionado e o descritor Soquete retornado é um Soquete c_leaf correspondente para o nó folha recém-adicionado. O Soquete recém-criado tem as mesmas propriedades como s, Incluindo assíncrono eventos registrados com WSAEventSelect. Ele não deve ser usado para a troca de dados multiponto, mas em vez disso, ele é usado para receber indicações evento rede, como FD_CLOSE para a conexão que existe para o c_leaf específico. Algumas implementações multiponto também podem permitir que este Soquete a ser usado para bate-papos lado entre a raiz e um individual nó folha. Uma indicação FD_CLOSE será recebida para este Soquete se o correspondente chamadas nó folha closesocket Para ato de soltar fora da sessão a multiponto. Chamar symmetrically, closesocket na Soquete c_leaf retornado da WSAJoinLeaf irá causar o Soquete no correspondente nó folha para get uma notificação FD_CLOSE.

Quando WSAJoinLeaf é chamado com um Soquete c_leaf, o Nome parâmetro contém o endereço do aplicativo raiz para uma esquema controle raiz ou uma sessão multiponto existente para uma esquema controle nonrooted, e o descritor Soquete retornada é o mesmo como a entrada Soquete descritor. Em outras palavras, um novo descritor Soquete não está alocado. Em uma esquema controle raiz, o aplicativo raiz poderia pôr seu Soquete c_root no modo de escuta por chamado escutar. O padrão FD_ACCEPT notificação será enviada quando o nó folha solicita a junção próprio para a sessão multiponto. O aplicativo raiz usa o Normal aceitar/WSAAccept funções para o novo nó folha admitir. O valor retornado de ambos aceitar ou WSAAccept Também é um descritor Soquete c_leaf assim como aqueles retornado da WSAJoinLeaf. Para acomodar multiponto esquemas que permitem associações raiz-iniciada tanto folha-iniciada, ela é aceitável para uma Soquete c_root que já está em modo de escuta para ser usado como uma entrada para WSAJoinLeaf.

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 a solicitação junção sessão multiponto. 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 voltar passado de outro computador na rede como parte do estabelecimento de sessão multiponto. O lpCalleeData-> Len Contém inicialmente o comprimento da reserva alocados pelo aplicativo e apontado pelo lpCalleeData-> buf. lpCalleeData-> Len será definido como 0 se não dados usuário tem sido passados voltar. O lpCalleeData informações será válido quando a operação junção multiponto está completo.

Para bloqueio soquetes, este será quando o WSAJoinLeaf função retorna. Para de não bloqueio soquetes, isso será após a operação junção foi concluída. De exemplo, isso pode ocorrer após FD_CONNECT notificação sobre a original Soquete s. 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.

O dwFlags parâmetro é usado para indicar se o Soquete será ser atuando somente como um remetente com JL_SENDER_ONLY, apenas como um destinatário com JL_RECEIVER_ONLY, ou ambos como JL_BOTH.

Quando conectado soquetes interromper ou tornam-se fechado por qualquer motivo, eles devem ser descartados e recriados. É mais segura assumir que ao coisas ir errado por algum motivo em um Soquete conectado, o aplicativo deve descartar e recriar os soquetes necessários na ordem para retornar a uma apontar estável.

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)
select
WSAAccept
WSAEventSelect
WSASocket