socket (Windows Sockets)
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