Uso de varios protocolos
Una aplicación usa la función WSAEnumProtocols para determinar qué protocolos de transporte y cadenas de protocolo están presentes y para obtener información sobre cada uno tal como se encuentra en la estructura de WSAPROTOCOL_INFO asociada.
En la mayoría de los casos, hay una única estructura de WSAPROTOCOL_INFO para cada cadena de protocolos o protocolos. Sin embargo, algunos protocolos presentan varios comportamientos. Por ejemplo, el protocolo SPX está orientado a mensajes (es decir, la red conserva los límites del mensaje del remitente), pero el socket receptor puede omitir estos límites de mensaje y tratarlos como una secuencia de bytes. Por lo tanto, podrían existir dos entradas de estructura WSAPROTOCOL_INFO diferentes para SPX, una para cada comportamiento.
En Windows Sockets 2, aparecen varios nuevos valores de familia de direcciones, tipo de socket y protocolo. Windows Sockets 1.1 admite una sola familia de direcciones (AF_INET) para IPv4 que consta de un pequeño número de tipos de socket conocidos e identificadores de protocolo. Windows Sockets 2 conserva la familia de direcciones, el tipo de socket y los identificadores de protocolo existentes por motivos de compatibilidad, pero también admite nuevos valores de familia de direcciones para nuevos protocolos de transporte con nuevos tipos de medios.
Los identificadores únicos nuevos no son necesariamente conocidos, pero esto no debería suponer un problema. Se recomienda a las aplicaciones que deban ser independientes del protocolo seleccionar un protocolo en función de su idoneidad en lugar de los valores asignados a sus parámetros de protocolo o socket_type. La idoneidad del protocolo se indica mediante los atributos de comunicación, como la secuencia de mensajes frente a bytes, y confiable frente a no confiable, que se encuentran en la estructura de WSAPROTOCOL_INFO del protocolo. La selección de protocolos sobre la base de la idoneidad en lugar de los nombres de protocolo conocidos y los tipos de socket permite a las aplicaciones independientes del protocolo aprovechar los nuevos protocolos de transporte y sus tipos de medios asociados, a medida que están disponibles.
La mitad del servidor de una aplicación cliente/servidor beneficia al establecer sockets de escucha en todos los protocolos de transporte adecuados. A continuación, el cliente puede establecer su conexión mediante cualquier protocolo adecuado. Por ejemplo, esto permitiría que una aplicación cliente no se modificara si se estaba ejecutando en un sistema de escritorio conectado a través de LAN o en un portátil mediante una red inalámbrica.