Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Fachkonzept - Client-Server-Systeme

Anbieter und Kunde

Ein Client-Server-System besteht aus zwei Kommunikationspartnern, einem Server, der bestimmte Dienste zur Verfügung stellt, und einem Client, der angebotene Dienste des Servers in Anspruch nimmt.

Client-Server[1]

Bei einer Client-Server-Anwendung nimmt der Client Kontakt mit dem Server auf. Damit das auch möglich ist, muss der Server stets auf eine solche Kontaktaufnahme vorbereitet sein.

Client-Server-Kommunikation mit Sockets

Die folgende Abbildung verdeutlicht die Aktionen von Client und Server bei einer Client-Server-Kommunikation.

Client-Server-System

Der Server muss hierzu zunächst ein sog. Verbindungssocket erzeugen und dieses Socket an IP-Adresse und Port eines Prozesses binden. Abschließend beginnt das Socket mit dem Lauschen auf Verbindungsanfragen.

Ein Client muss ebenfalls ein Socket erzeugen, das hier Kommunikationsssocket genannt wird. Anschließend kann ein solches Kommunikationssocket mit dem Verbindungssocket des Servers Kontakt aufnehmen und einen Verbindungswunsch anfragen. Hier läuft (unter TCP) dann ein Drei-Wege-Handschlagprotokoll ab.

Wenn die Verbindsanfrage vom Verbindungssocket des Servers akzeptiert wird, dann erzeugt das Verbindungssocket ein zusätzliches Kommunikationssocket. Das Verbindungssocket übernimmt also nicht den Austausch der Daten, sondern überlässt das dem neu erzeugten Kommunikationssocket, um selbst auf weitere Verbindungsanfragen reagieren zu können.

Die Kommunikationssockets von Client und Server können jetzt Daten senden und empfangen.

Wenn der Nachrichtenaustausch beendet ist, werden die Kommunikationssockets geschlossen. Der Server beendet seine "Arbeit", indem das Verbindungssocket geschlossen wird.

Operationen zur Durchführung einer Client-Server-Kommunikation

Die Socket-Schnittstelle (Socket-API) legt geeignete Operationen fest, um den oben beschriebenen Client-Server-Kommunikation zu realisieren.

Socket-Operationen

Sockets werden erzeugt, indem man Objekte der Klasse socket - die sich im Modul socket befindet - erzeugt.

Solche Objekte können jetzt die in der Abbildung gezeigten Operationen ausführen.

Quellen

X

Fehler melden

X

Suche