Usando vários protocolos
Um aplicativo usa a função WSAEnumProtocols para determinar quais protocolos de transporte e cadeias de protocolo estão presentes e para obter informações sobre cada um, conforme contido na estrutura de WSAPROTOCOL_INFO associada.
Na maioria das instâncias, há uma única estrutura WSAPROTOCOL_INFO para cada protocolo ou cadeia de protocolos. No entanto, alguns protocolos exibem vários comportamentos. Por exemplo, o protocolo SPX é orientado a mensagens (ou seja, os limites de mensagem do remetente são preservados pela rede), mas o soquete de recebimento pode ignorar esses limites de mensagem e tratá-los como um fluxo de bytes. Assim, duas entradas de estrutura de WSAPROTOCOL_INFO diferentes podem existir para o SPX— uma para cada comportamento.
No Windows Sockets 2, vários novos valores de família de endereços, tipo de soquete e protocolo são exibidos. O Windows Sockets 1.1 tinha suporte para uma família de endereços únicos (AF_INET) para IPv4 que consistia em um pequeno número de tipos de soquete conhecidos e identificadores de protocolo. O Windows Sockets 2 retém a família de endereços, o tipo de soquete e os identificadores de protocolo existentes por motivos de compatibilidade, mas também dá suporte a novos valores de família de endereços para novos protocolos de transporte com novos tipos de mídia.
Identificadores novos e exclusivos não são necessariamente bem conhecidos, mas isso não deve representar um problema. Os aplicativos que precisam ser independentes de protocolo são incentivados a selecionar um protocolo com base em sua adequação, em vez dos valores atribuídos aos parâmetros de protocolo ou socket_type. A adequação do protocolo é indicada pelos atributos de comunicação, como fluxo de mensagem versus byte e confiável versus não confiável, contidos no protocolo WSAPROTOCOL_INFO estrutura. Selecionar protocolos com base na adequação em vez de nomes de protocolo conhecidos e tipos de soquete permite que aplicativos independentes de protocolo aproveitem novos protocolos de transporte e seus tipos de mídia associados à medida que se tornam disponíveis.
A metade do servidor de um aplicativo cliente/servidor se beneficia estabelecendo soquetes de escuta em todos os protocolos de transporte adequados. Em seguida, o cliente pode estabelecer sua conexão usando qualquer protocolo adequado. Por exemplo, isso permitiria que um aplicativo cliente fosse modificado se ele estivesse em execução em um sistema de área de trabalho conectado por meio de LAN ou em um laptop usando uma rede sem fio.