Compartilhar via


WSPSocket

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função cria um Soquete.

Syntax

SOCKET WSPSocket(
  int af,
  int type,
  int protocol,
  LPWSAPROTOCOL_INFOW lpProtocolInfo,
  GROUP g,
  DWORD dwFlags,
  LPINT lpErrno 
);

Parameters

  • AF
    [no] Endereço família especificação.
  • tipo
    [no] Digite especificação para o novo Soquete.
  • protocolo
    [no] Protocolo a ser usado com o Soquete específica para o família de endereços indicado.
  • lpProtocolInfo
    [no] Ponteiro para um WSAPROTOCOL_INFOW estrutura que define as características do Soquete a ser criado.
  • g
    [no] Reservado.
  • dwFlags
    Especificação atributo Soquete.
  • lpErrno
    [out] Ponteiro para o código de erro.

Return Value

Se não houver erro, essa função retornará um descritor referenciar o novo Soquete. Caso contrário, será retornado um valor de INVALID_SOCKET 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.

WSAEAFNOSUPPORT

Especificado não é família de endereços com suporte.

WSAEINPROGRESS

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

WSAEMFILE

Há mais descritores Soquete estiver disponível.

WSAENOBUFS

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

WSAEPROTONOSUPPORT

Especificado protocolo não é com suporte.

WSAEPROTOTYPE

Protocolo especificado é o tipo errado para este Soquete.

WSAESOCKTNOSUPPORT

Especificado não é tipo Soquete com suporte in este família de endereços.

WSAEINVAL

Parâmetro g especificado não é válido.

Remarks

Essa função faz com que um descritor Soquete e qualquer relacionado recursos a ser alocado. Por padrão, o Soquete criado será Não Ter o atributo sobreposto. Para nonfile-sistema Soquetes do Windows provedores, WPUCreateSocketHandle Deve ser usada para adquirir um exclusivo descritor Soquete a partir de ws2.dll prior to retornando desta função.

Os valores para AF, tipo, e protocolo São aqueles fornecidos pelo aplicativo no correspondente funções API Soquete Ou WSASocket. Um provedor serviço é livre para ignorar ou preste atenção a qualquer ou todos esses valores como é apropriado para o protocolo específico. No entanto, o provedor deve estar disposto a aceitar o valor de zero para AF e tipo, pois o ws2.dll considera-los para ser valores curinga. Também o valor do manifesto constante FROM_PROTOCOL_INFO Deve ser aceito para qualquer um dos AF, tipo e protocolo. Esse valor indica que o aplicativo precise usar o correspondente 2 Soquetes do Windows valores a partir de indicado WSAPROTOCOL_INFOW estrutura: (iAddressFamily, iSocketType, iProtocol).

O dwFlags parâmetro pode ser usado para especificar os atributos do Soquete, usando o operador bit a bit OR com Sinalizadores específicos. A seguinte tabela mostra esses sinalizadores.

Sinalizador Descrição

WSA_FLAG_OVERLAPPED

Este sinalizador fará com que um Soquete sobreposta a ser criado. Soquetes sobrepostos podem utilizar WSPSend, WSPSendTo, WSPRecv, WSPRecvFrom e WSPIoctl para operações E/S sobrepostas, que permitem múltiplo operações para ser iniciada em processo simultaneamente. Todas as funções que permitem operações sobrepostas também suporte uso nonoverlapped em um Soquete sobreposto se os valores para parâmetros relacionado a operação sobreposta é NULL.

WSA_FLAG_MULTIPOINT_C_ROOT

Indica que o Soquete criado será um c_root em uma sessão multiponto. Permitida apenas se um avião controle raiz é indicado do protocolo WSAPROTOCOL_INFOW estrutura.

WSA_FLAG_MULTIPOINT_C_LEAF

Indica que o Soquete criado será um c_leaf em um Multicast sessão. Só pode se XP1_SUPPORT_MULTIPOINT é indicado do protocolo WSAPROTOCOL_INFOW estrutura.

WSA_FLAG_MULTIPOINT_D_ROOT

Indica que o Soquete criado será um d_root em uma sessão multiponto. Permitida apenas se um avião dados raiz é indicado do protocolo WSAPROTOCOL_INFOW estrutura.

WSA_FLAG_MULTIPOINT_D_LEAF

Indica que o Soquete criado será um d_leaf em uma sessão multiponto. Só pode se XP1_SUPPORT_MULTIPOINT é indicado do protocolo WSAPROTOCOL_INFOW estrutura.

Para multiponto soquetes, exatamente um dos WSA_FLAG_MULTIPOINT_C_ROOT ou WSA_FLAG_MULTIPOINT_C_LEAF deve ser especificado e exatamente um dos WSA_FLAG_MULTIPOINT_D_ROOT ou WSA_FLAG_MULTIPOINT_D_LEAF deve ser especificado.

Orientado à conexão, como soquetes SOCK_STREAM Fornecer conexões full-duplex e deve ser em um estado conectado para quaisquer dados podem ser enviados ou recebidos em-los. Uma conexão a outro Soquete é criado com uma WSPConnect chamar. Depois de conectado, dados podem ser transferidos usando WSPSend e WSPRecv Chamadas. Quando uma sessão for concluída, um WSPCloseSocket deve ser executada.

Os protocolos de comunicação usados para implementar um seguro, Soquete Connection-Oriented garantir que dados não é perdidos ou duplicados. Se dados para que o protocolo ponto a ponto tem espaço do buffer não podem ser transmitidos com êxito em um período de tempo razoável, a conexão será considerado chamadas quebradas e subseqüentes falhará com o código de erro definido como WSAETIMEDOUT.

Soquetes sem conexão, orientado a mensagem permitem o envio e recebimento de datagramas de e para pontos arbitrários usando WSPSendTo e WSPRecvFrom. Se tal um Soquete estiver conectado usando WSPConnect Para um ponto específico, datagramas podem ser enviados para esse ponto usando WSPSend e pode ser recebidas (somente) neste ponto usando WSPRecv.

Suporte para Soquetes com tipo SOCK processado não é exigido mas serviço provedores são incentivados a suporte processado soquetes sempre que ele faz sentido fazer isso.

Sockets compartilhadas

Quando um especiais WSAPROTOCOL_INFOW estrutura (obtido através de WSPDuplicateSocket função e usado para criar descritores adicionais para um Soquete compartilhado) é passado como um parâmetro de entrada para WSPSocket, o g e dwFlags Os parâmetros são Ignorado.

Observação

O provedor serviço Soquetes do Windows incluída no Windows Embedded CE não suporte Soquete compartilhamento.No entanto, você pode criar um personalizado provedor serviço que oferece suporte a soquetes compartilhados.

Considerações sobre do provedor de serviço em camadas

Uma em camadas provedor serviço fornece uma implementação desta função, mas ele também é um cliente desta função se e quando ela chama WSPSocket do próximo camada em encadear o provedor. Aplicar algumas considerações especiais para do esta função lpProtocolInfo parâmetro como ele é propagado para baixo através as camadas de encadear o provedor.

Se o próximo camada em encadear o provedor é outra camada e quando o próximo da camada WSPSocket é chamado, esta camada deve transmitir para o próximo camada um lpProtocolInfo que faz referência a mesma mantidos inalterados WSAPROTOCOL_INFOW estrutura com as mesmo informações encadear não modificada. No entanto, se o próximo camada é o protocolo de base (that is, o elemento último no encadear), essa camada executa uma substituição quando chamado do provedor de de base WSPSocket. Neste do maiúsculas e minúsculas, o provedor de base WSAPROTOCOL_INFOW estrutura deve ser relacionado pela lpProtocolInfo parâmetro.

Um beneficiar vital dessa diretiva é que serviço de base provedores não precisa estar ciente de cadeias provedor.

Esta diretiva de propagação mesmo se aplica ao propagar um WSAPROTOCOL_INFOW estrutura através uma em camadas seqüência das outras funções such as WSPAddressToString, WSPDuplicateSocket, WSPStartup, ou WSPStringToAddress.

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
WSPConnect
WSPGetSockName
WSPGetSockOpt
WSPSetSockOpt
WSPListen
WSPRecv
WSPRecvFrom
WSPSend
WSPSendTo
WSPShutdown
WSPIoctl
WPUCreateSocketHandle