Condividi tramite


Uso di più protocolli

Un'applicazione usa la funzione WSAEnumProtocols per determinare quali protocolli di trasporto e catene di protocolli sono presenti e per ottenere informazioni su ognuna come contenuta nella struttura di WSAPROTOCOL_INFO associata.

Nella maggior parte dei casi è presente una singola struttura WSAPROTOCOL_INFO per ogni protocollo o catena di protocolli. Tuttavia, alcuni protocolli presentano più comportamenti. Ad esempio, il protocollo SPX è orientato ai messaggi , ovvero i limiti dei messaggi del mittente vengono mantenuti dalla rete, ma il socket ricevente può ignorare questi limiti dei messaggi e considerarli come un flusso di byte. Pertanto, due voci di struttura WSAPROTOCOL_INFO diverse potrebbero esistere per SPX, una per ogni comportamento.

In Windows Sockets 2 vengono visualizzati diversi nuovi valori di famiglia di indirizzi, tipo di socket e protocollo. Windows Sockets 1.1 supportava una singola famiglia di indirizzi (AF_INET) per IPv4 costituita da un numero ridotto di tipi di socket e identificatori di protocollo noti. Windows Sockets 2 mantiene la famiglia di indirizzi, il tipo di socket e gli identificatori di protocollo esistenti per motivi di compatibilità, ma supporta anche nuovi valori della famiglia di indirizzi per i nuovi protocolli di trasporto con nuovi tipi di supporti.

Gli identificatori nuovi e univoci non sono necessariamente noti, ma questo non dovrebbe rappresentare un problema. Le applicazioni che devono essere indipendenti dal protocollo sono incoraggiate a selezionare un protocollo in base all'idoneità anziché ai valori assegnati ai relativi parametri di protocollo o socket_type. L'idoneità del protocollo è indicata dagli attributi di comunicazione, ad esempio flusso di messaggi e byte, e reliable-versus-unreliable, contenuti nella struttura del protocollo WSAPROTOCOL_INFO . La selezione dei protocolli in base all'idoneità anziché ai nomi di protocollo e ai tipi socket noti consente alle applicazioni indipendenti dal protocollo di sfruttare i nuovi protocolli di trasporto e i relativi tipi di supporti associati, non appena diventano disponibili.

La metà del server di un'applicazione client/server offre vantaggi stabilendo socket di ascolto su tutti i protocolli di trasporto appropriati. Il client può quindi stabilire la connessione usando qualsiasi protocollo appropriato. Ad esempio, ciò consente a un'applicazione client di essere non modificata se era in esecuzione in un sistema desktop connesso tramite LAN o su un portatile usando una rete wireless.