Winsock
# Winsock

Winsock oder Windows Sockets ist eine Windows-Programmierschnittstelle (API) zum Zugriff auf Rechnernetze über Sockets.

Winsock ergänzt Windows um die Internetprotokollfamilie und ist für die Verbindung des Computers mit dem Internet zuständig. Es wird von Programmen verwendet, um über das Internetprotokoll (IP) auf das Netzwerk zuzugreifen. Das Betriebssystem stellt dafür diverse Funktionen in Programmbibliotheken bereit. Moderne objektorientierte Programmiersprachen und Frameworks stellen in der Regel Klassen zur Verfügung, die den konkreten Zugriff auf die einzelnen Socket-Funktionen des Betriebssystems, u. a. auch im Hinblick auf Plattformunabhängigkeit, kapseln.

## Funktionsweise

Wenn ein Programm (z. B. ein Webbrowser) über das Netzwerk kommunizieren will (z. B. mit einem Webserver), gibt es die Anforderung an Winsock weiter, welches dann versucht, die Verbindung aufzubauen. Winsock meldet an das aufrufende Programm zurück, ob der Verbindungsaufbau gelungen oder fehlgeschlagen ist. Konnte eine Verbindung hergestellt werden, können mit weiteren Winsock-Funktionsaufrufen über diese Verbindung Daten über das Netzwerk ausgetauscht werden (z. B. einzelne Webseiten).

Durch die Verwendung der Winsock-API ist es prinzipiell möglich, IP-benutzende Programme zu schreiben, die quellcodekompatibel zwischen Windows und POSIX-Betriebssystemen sind, wobei seit Winsock 2.0 auch andere Protokolle als die der Internetprotokollfamilie möglich sind, wie z. B. IrDA oder Bluetooth. In älteren Versionen des Betriebssystems Windows wurden u. a. auch die Protokolle IPX und AppleTalk nativ unterstützt.

Die Kommunikation über Sockets kann via SSL/TLS verschlüsselt erfolgen.

## Geschichte

Winsock wurde 1992 von Microsoft entwickelt. Dazu wurden praktisch alle Funktionen von den Betriebssystemen Unix und BSD übernommen. Zuvor war man auf Implementationen von Drittanbietern angewiesen, wie z. B. der verbreiteten Shareware „Trumpet Winsock“ von Peter Tattam.

