Verwenden mehrerer Protokolle
Eine Anwendung verwendet die WSAEnumProtocols-Funktion , um zu bestimmen, welche Transportprotokolle und Protokollketten vorhanden sind, und um Informationen zu diesen zu erhalten, wie sie in der zugeordneten WSAPROTOCOL_INFO-Struktur enthalten sind.
In den meisten Fällen gibt es eine einzelne WSAPROTOCOL_INFO-Struktur für jedes Protokoll oder jede Protokollkette. Einige Protokolle weisen jedoch mehrere Verhaltensweisen auf. Das SPX-Protokoll ist beispielsweise nachrichtenorientiert (d. h. die Nachrichtengrenzen des Absenders werden vom Netzwerk beibehalten), aber der empfangende Socket kann diese Nachrichtengrenzen ignorieren und als Bytedatenstrom behandeln. Daher könnten zwei unterschiedliche WSAPROTOCOL_INFO Struktureinträge für SPX vorhanden sein – einer für jedes Verhalten.
In Windows Sockets 2 werden mehrere neue Adressfamilie, Sockettyp und Protokollwerte angezeigt. Windows Sockets 1.1 unterstützt eine einzelne Adressfamilie (AF_INET) für IPv4, die aus einer kleinen Anzahl bekannter Sockettypen und Protokollbezeichnern bestand. Windows Sockets 2 behält die vorhandene Adressfamilie, den Sockettyp und die Protokoll-IDs aus Kompatibilitätsgründen bei, unterstützt aber auch neue Adressfamilienwerte für neue Transportprotokolle mit neuen Medientypen.
Neue, eindeutige Bezeichner sind nicht unbedingt bekannt, aber dies sollte kein Problem darstellen. Anwendungen, die protokollunabhängig sein müssen, werden empfohlen, ein Protokoll auf der Grundlage seiner Eignung auszuwählen, anstatt die Werte, die ihren socket_type oder Protokollparametern zugewiesen wurden. Die Protokolleignung wird durch die Kommunikationsattribute wie nachrichten-versus-byte-Stream und reliable-versus-unzuverlässig angegeben, die in der Protokoll-WSAPROTOCOL_INFO-Struktur enthalten sind. Die Auswahl von Protokollen auf Der Grundlage der Eignung im Gegensatz zu bekannten Protokollnamen und Sockettypen ermöglicht es protokollunabhängigen Anwendungen, neue Transportprotokolle und die zugehörigen Medientypen zu nutzen, sobald sie verfügbar werden.
Die Serverhälfte einer Client-/Serveranwendung profitiert von der Einrichtung von Lauschockets für alle geeigneten Transportprotokolle. Anschließend kann der Client seine Verbindung mithilfe eines geeigneten Protokolls herstellen. Dies ermöglicht beispielsweise, dass eine Clientanwendung nicht geändert werden kann, unabhängig davon, ob sie auf einem Desktopsystem ausgeführt wird, das über LAN verbunden ist, oder auf einem Laptop über ein drahtloses Netzwerk.