Winsock-Kernelsockock-Socketkategorien

Die Netzwerkprogrammierschnittstelle (Network Programming Interface, NPI) des Winsock-Kernels (WSK) definiert fünf verschiedene Kategorien von Sockets: Basissockel, Lauschock-Sockets, Datagram-Sockets, verbindungsorientierte Sockets und Streamsockets. Jede WSK-Socketkategorie verfügt über eine eindeutige Funktionalität und unterstützt einen anderen Satz von Socketfunktionen. Eine WSK-Anwendung muss angeben, welche Kategorie von WSK-Socket sie erstellt, wenn sie einen neuen Socket erstellt. Der Zweck für jede WSK-Socketkategorie lautet wie folgt:

Basic Sockets
Grundlegende Sockets werden nur zum Abrufen und Festlegen von Transportstapel-Socketoptionen oder zum Ausführen von Socket-E/A-Steuerungsvorgängen verwendet. Basic Sockets können nicht an eine lokale Transportadresse gebunden werden und unterstützen das Senden oder Empfangen von Netzwerkdaten nicht.

Listening Sockets
Lauschende Sockets werden verwendet, um auf eingehende Verbindungen von Remotetransportadressen zu lauschen. Die Funktionalität eines Listening Sockets umfasst die gesamte Funktionalität eines basisigen Sockets.

Datagram Sockets
Datagram-Sockets werden zum Senden und Empfangen von Datagrammen verwendet. Die Funktionalität eines Datagrammsockets umfasst alle Funktionen eines Basissockets.

Verbindungsorientierte Sockets
Verbindungsorientierte Sockets werden verwendet, um Netzwerkdaten über etablierte Verbindungen zu senden und zu empfangen. Die Funktionalität eines verbindungsorientierten Sockets umfasst die gesamte Funktionalität eines Basissockels.

Streamsockets
Streamsockets werden verwendet, um entweder auf eingehende Verbindungen von Remotetransportadressen zu lauschen (fungieren als Abhörsocket) oder um Netzwerkdaten über etablierte Verbindungen zu senden und zu empfangen (als verbindungsorientiertes Socket fungieren). Verwenden Sie einen Datenstromsocket, wenn Sie zum Zeitpunkt der Socketerstellung nicht wissen, ob Sie einen Abhörsocket oder einen verbindungsorientierten Socket wünschen. Die Funktionalität eines Streamsockets umfasst die gesamte Funktionalität eines Basissockets.