‹ Informatik

Socket

Socket verständlich erklärt: Bedeutung, Beispiele und Anwendung in Programmierung, Objektorientierung und Softwareprojekten.

Wenn du eine Webseite öffnest oder in einem Online-Spiel mit anderen spielst, tauschen Programme Daten aus. Damit eine Nachricht beim richtigen Programm ankommt, brauchen sie einen klaren Kommunikationsweg. Genau dabei helfen Sockets.

Deine Lernziele
  • Du erklärst, was ein Socket ist.
  • Du unterscheidest Client und Server.
  • Du verstehst die Aufgaben von IP-Adresse und Port.
  • Du kennst den Ablauf einer TCP-Verbindung.

Was ein Socket macht

Ein Chatprogramm soll eine Nachricht an ein anderes Programm schicken. Die Programme brauchen dafür einen Zugang zum Netzwerk, über den sie senden und empfangen können.

Ein Socket ist ein Kommunikationsanschluss eines Programms. Über ihn kann ein Programm Daten mit einem anderen Programm austauschen. Das andere Programm kann auf demselben Computer oder auf einem anderen Computer im Netzwerk laufen.

Definition

Ein Socket ist ein vom Betriebssystem bereitgestellter Zugang, über den ein Programm Daten senden und empfangen kann.

Das Betriebssystem ist die Grundsoftware eines Computers. Es verwaltet zum Beispiel Programme, Dateien und die Netzwerkverbindung. Ein Programm muss nicht selbst wissen, wie WLAN oder Kabel funktionieren. Es übergibt seine Daten an den Socket.

Beispiel

Dein Browser fragt eine Lernplattform nach einer Seite. Der Browser sendet die Anfrage über seinen Socket. Der Webserver empfängt sie über seinen Socket und schickt die Seite zurück.

Merke

Ein Socket ist nicht die Internetleitung selbst. Er ist der Anschluss eines Programms an diese Kommunikation.

Interaktive Quizfrage wird geladen ...

Client und Server

Bei vielen Netzwerkprogrammen gibt es zwei Rollen. Ein Client ist ein Programm, das eine Leistung anfragt. Ein Server ist ein Programm, das auf Anfragen wartet und darauf reagiert.

Ein Browser ist meist ein Client. Der Server einer Webseite liefert ihm Texte, Bilder oder Daten. Ein Programm kann je nach Aufgabe auch beide Rollen übernehmen.

Beispiel

In einer Wetter-App ist die App auf deinem Handy der Client. Sie fragt nach dem Wetter in Berlin. Der Wetterserver sendet die passenden Daten zurück.

Gut zu wissen

Ein Server muss nicht nur ein einzelner Computer sein. Hinter einer großen Webseite können viele Server zusammenarbeiten.

Interaktive Quizfrage wird geladen ...

Die Adresse: IP-Adresse und Port

Stell dir ein Schulgebäude vor. Die Adresse zeigt, zu welchem Gebäude ein Brief soll. Die Raumnummer zeigt, welche Person oder Arbeitsgemeinschaft ihn bekommen soll.

Eine IP-Adresse ist die Adresse eines Geräts in einem Netzwerk. Ein Port ist eine Nummer, die auf diesem Gerät zu einem bestimmten Programm oder Dienst führt. So können auf einem Computer gleichzeitig ein Browser, ein Spiel und ein Webserver das Netzwerk benutzen.

Die Kombination aus IP-Adresse und Port beschreibt, wo ein Socket erreichbar ist. Ein Client braucht normalerweise beides, um einen Server anzusprechen.

Beispiel

Ein Server ist unter der IP-Adresse 203.0.113.10 erreichbar und wartet auf Port 5000. Ein Client verbindet sich also mit 203.0.113.10 und 5000.

Die IP-Adresse führt zum richtigen Computer. Der Port führt dort zum richtigen Programm.

Merke

IP-Adresse = Gerät finden. Port = passendes Programm auf diesem Gerät finden.

Interaktiver Lückentext wird geladen ...

So entsteht eine Verbindung

Für eine häufige Socket-Art wird TCP verwendet. TCP ist ein Protokoll, also ein Satz von Regeln für die Datenübertragung. Innerhalb einer bestehenden Verbindung sorgt TCP dafür, dass Daten geordnet und zuverlässig übertragen werden. Bricht die Verbindung ab, meldet TCP den Fehler. Das Programm darf dann nicht so tun, als sei alles vollständig angekommen.

Ein TCP-Server öffnet zuerst einen Socket, ordnet ihm eine Adresse und einen Port zu und wartet. Man sagt auch: Er lauscht auf Verbindungen. Ein Client öffnet ebenfalls einen Socket und verbindet sich mit der Adresse des Servers.

Wenn der Server die Anfrage annimmt, kann zwischen Client und Server ein Datenaustausch beginnen. Danach schließen beide Seiten die Verbindung wieder.

Beispiel

Ein einfacher Server für einen Wort-Check könnte so arbeiten:

  1. Der Server wartet auf Port 5000.
  2. Ein Lernprogramm verbindet sich mit dem Server.
  3. Das Lernprogramm sendet ein Wort.
  4. Der Server prüft das Wort und sendet eine Antwort.
  5. Die Verbindung wird geschlossen.

Der Server kann danach weiter auf die nächste Anfrage warten.

Gut zu wissen

Ein Server behält seinen wartenden Socket. Für eine angenommene Verbindung verwendet er einen eigenen Socket. Deshalb kann er mehrere Clients bedienen.

Interaktive Quizfrage wird geladen ...

Daten senden und empfangen

Über einen Socket können Programme Daten in beide Richtungen austauschen. Senden bedeutet, Daten an den Socket zu übergeben. Empfangen bedeutet, Daten aus dem Socket zu lesen.

Bei TCP fließt ein Datenstrom. Das ist eine geordnete Folge von Bytes. Ein Byte ist eine kleine Einheit, in der Computer Daten speichern oder übertragen. Wichtig: Ein Programm darf nicht annehmen, dass eine gesendete Nachricht genau in einem einzigen Lesevorgang ankommt. Es muss selbst festlegen, wo eine Nachricht endet, etwa durch einen Zeilenumbruch oder eine Längenangabe.

Beispiel

Ein Client sendet nacheinander:

Hallo
Wie geht es dir?

Der Server kann die Daten beim Lesen in mehreren Teilen erhalten. Deshalb kann er vereinbaren: Jede Nachricht endet mit einem Zeilenumbruch. Dann sammelt er Daten, bis er diesen Abschluss findet.

Merke

TCP liefert einen geordneten Datenstrom. Die Einteilung in Nachrichten planen die Programme selbst.

Interaktive Quizfrage wird geladen ...

TCP und UDP vergleichen

Neben TCP gibt es UDP. UDP ist ebenfalls ein Netzwerkprotokoll. Es verschickt einzelne Datagramme, also getrennte Datenpakete. Dabei wird nicht garantiert, dass jedes Paket ankommt oder in derselben Reihenfolge ankommt.

TCP passt gut, wenn jede Information wichtig ist, zum Beispiel bei einer Anmeldung oder beim Laden einer Webseite. UDP kann sinnvoll sein, wenn Tempo wichtiger ist und einzelne verlorene Daten weniger stören, etwa bei manchen Live-Spielen oder Sprachübertragungen.

Beispiel

Bei einer Anmeldung darf das Passwort nicht einfach fehlen. Dafür eignet sich TCP.

Bei einer schnellen Sprachübertragung ist ein verspätetes altes Tonstück oft nutzlos. Hier kann UDP passend sein.

Interaktive Lernkarten wird geladen ...

Interaktive Quizfrage wird geladen ...

Zusammenfassung

Ein Socket ist der Kommunikationsanschluss eines Programms. Ein Client verbindet sich über IP-Adresse und Port mit einem Server. Mit TCP können beide anschließend Daten als geordneten Datenstrom austauschen; bei einem Verbindungsfehler muss das Programm reagieren. Mit UDP lassen sich einzelne Datagramme schnell versenden, aber ohne Garantie auf Zustellung und Reihenfolge.