Netzwerkprogrammierung mit Sockets
Verbindungsorientierte Kommunikation
Den prinzipiellen Ablauf des Aufbaus einer Verbindung und des anschließenden Datenaustausches zeigt folgende Tabelle. Für jeden Schritt ist der Name der entsprechenden Funktion in der Programmiersprache C angegeben.
Endpunkt anlegen | socket() | ||
Adresse festlegen | bind() | ||
Warteschlange starten | listen() | ||
Auf Anmeldung warten | accept() | ||
Endpunkt anlegen | socket() | ||
Verbinden | connect() | ||
Daten schreiben | send() | Daten lesen | recv() |
Daten lesen | recv() | Daten schreiben | send() |
Eine Besonderheit ist bei der Verwendung von Sockets unter Windows (Windows-Sockets) zu beachten: Um den Service benutzen zu können, muss zunächst die Funktion WSAStartup aufgerufen werden. Dabei kann der Programmierer die gewünschte Version einstellen. Dazu ein Beispiel:
long WinsockStartup()
{
long rc;
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(2, 1);
rc = WSAStartup( wVersionRequested, &wsaData );
return rc;
}
In diesem Beispiel wird die Version 2.1 spezifiziert. Nach dem Aufruf stehen in der Struktur wsaData Informationen über die gefundene Implementierung der Windows-Sockets.