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.

Socket-Funktionsaufrufe für verbindungsorientierte Kommunikation

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.