socket (Windows Sockets)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função cria um Soquete que está ligado a um provedor serviço específico.

Syntax

SOCKET socket(
  int af,
  int type,
  int protocol
);

Parameters

  • AF
    [no] Endereço família especificação.
  • tipo
    [no] Digite especificação para o novo Soquete.

    A seguinte tabela mostra as especificações tipo duas com suporte para Winsock 1.1*.* 

    Tipo Descrição

    SOCK_STREAM

    Fornece Sequenced, seguro, bidirecional, fluxos byte Connection-Based com um fora de banda (OOB) transmissão de dados mecanismo. Usa TCP para família de endereços de Internet.

    SOCK_DGRAM

    Suporta datagramas, que são sem conexão, não confiável buffers de um fixo comprimento máximo (geralmente pequeno). Usa UDP para família de endereços de Internet.

    SOCK_RAW

    Suporta processado soquetes. Soquetes brutos permitem que um aplicativo para enviar e receber pacotes com personalizado cabeçalhos.

    Em 2.2 sockets do Windows (Winsock), Soquete vários novos tipos vai ser introduzidos e não precisam ser especificadas como um aplicativo dinamicamente pode descobrir os atributos de cada disponível protocolo transporte através de função WSAEnumProtocols. Tipo Soquete definições constar Winsock2.h, que serão atualizados periodicamente como novos tipos Soquete, endereço famílias e protocolos são definidos.

  • protocolo
    [no] Protocolo a ser usado com o Soquete específica para o família de endereços indicado. A seguinte lista mostra os valores possíveis.

    For All Platforms:

    • IPPROTO_IP
    • IPPROTO_IPV6
    • IPPROTO_TCP
    • IPPROTO_UDP
    • SOL_SOCKET

    For Windows Mobile:

    • IPPROTO_RAW

    Para obter mais informações sobre esses valores, consulte Socket Options.

Return Value

Se não houver erro, essa função retornará um descritor referenciar o novo Soquete. Se um erro ocorrer, será retornado um valor de INVALID_SOCKET, e um código de erro específicos podem ser recuperadas por chamado WSAGetLastError. A seguinte tabela mostra uma lista dos códigos de erro possível.

Código de erro Descrição

WSANOTINITIALISED

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

WSAENETDOWN

Subsistema de rede ou o associado provedor serviço tem falha.

WSAEAFNOSUPPORT

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

WSAEINPROGRESS

Um bloqueio é chamar sockets do Windows (Winsock) 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

O protocolo especificado não é com suporte.

WSAEPROTOTYPE

O protocolo especificado é o tipo errado para este Soquete.

WSAESOCKTNOSUPPORT

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

Remarks

Essa função faz com que um descritor Soquete e qualquer relacionado recursos a ser alocada e ligado a um transporte específico-provedor serviço. Soquetes do Windows usará o primeiro disponível serviço provedor que ofereça suporte a combinação de família de endereços, Soquete tipo e parâmetros protocolo solicitada. O Soquete que é criada terá o atributo sobreposto como um usar como padrão.

Soquetes com o atributo sobreposto podem ser criados usando WSASocket. Todas as funções que permitem operação sobreposta (WSASend, WSARecv WSASendTo, WSARecvFrome WSAIoctl) também suporte nonoverlapped o uso em um Soquete sobreposto se os valores para parâmetros relacionado a operação sobreposta é NULL.

Ao selecionar um protocolo e seu provedor serviço de suporte, esse procedimento será somente escolher um protocolo de base ou um provedor encadear, não uma camada protocolo por si só. Camadas protocolo unchained não são consideradas tiverem correspondências parciais no tipo ou AF Ambos. Ou seja, eles não levar a um código de erro de WSAEAFNOSUPPORT ou WSAEPROTONOSUPPORT se nenhum protocolo adequado é encontrado.

Importante

O manifesto constante AF_UNSPEC continua a ser definidas no arquivo de cabeçalho, mas seu uso é fortemente desencorajado, pois isso pode causar ambigüidade em interpretar o valor do parâmetro de protocolo.

Soquetes orientado à conexão, como SOCK_STREAM fornecem conexões full-duplex e devem ser em um estado conectado para quaisquer dados podem ser enviados ou recebidos em-lo. Uma conexão a outro Soquete é criado com uma chamar connect (Windows Sockets). Depois de conectado, dados podem ser transferidos usando send e recv chamadas. Quando uma sessão for concluída, um chamar closesocket 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 sendto e recvfrom. Se tal um Soquete estiver conectado a um ponto específico, os datagramas podem ser enviados para esse ponto usando send e podem ser recebidos apenas desse ponto usando recv.

Suporte para os soquetes com tipo Processado não é exigido, mas serviço provedores são incentivados a suporte processado soquetes como practicable.

Anotações de Sockets IrDA

  • O arquivo cabeçalho Af_irda.h deve ser explicitamente incluído.
  • Somente SOCK_STREAM é com suporte; o SOCK_DGRAM tipo não com suporte por IrDA.
  • O parâmetro protocolo é sempre definido como zero para IrDA.

Observação

On Windows NT® e Windows 2000, processado Soquete suporte administrativo requer privilégios.

Para obter mais inforamtion sobre suporte IrDA no Windows Embedded CE, consulte Infrared Communications.

Anotações de Sockets Bluetooth

  • O arquivo cabeçalho ws2bth.h deve ser explicitamente incluído.
  • É apenas SOCK_STREAM com suporte; o SOCK_DGRAM tipo não com suporte por Bluetooth.
  • O parâmetro protocolo é sempre definido como BTHPROTO_RFCOMM para Bluetooth.

Requirements

Header winsock2.h
Library Ws2.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

accept (Windows Sockets)
bind (Windows Sockets)
closesocket
connect (Windows Sockets)
getsockname (Windows Sockets)
getsockopt (Windows Sockets)
ioctlsocket
listen
recv
recvfrom
select
send
sendto
setsockopt (Windows Sockets)
shutdown
WSAEnumProtocols
WSAGetLastError
WSAIoctl
WSARecv
WSARecvFrom
WSASend
WSASendTo
WSASocket
WSAStartup