Übung - Einen Client zu einem Geburtstagsserver programmieren
Hinweise für die Lehrkraft - Vorbereitungen vor dem Unterricht
Auf dieser Seite sollen die Schülerinnen und Schüler Verbindungen zu einem Server herstellen. Dazu muss der Server auf einem Lehrerrechner laufen, der im Netzwerk erreichbar ist.
Server zu Aufgabe 1: geburtstagsserver.py
Die IP-Adresse des Lehrerrechners muss den Schülerinnen und Schülern bekannt gegeben werden.
Damit die beiden Server aus dem Netzwerk erreichbar sind, muss in der Firewall des Lehrerrechners eine Ausnahme für den TCP-Port 5002 eingerichtet werden. Nach der Unterrichtsstunde sollte die Firewallausnahme wieder deaktiviert werden.
Geburtstagsclient und Geburtstagsserver
In wie vielen Tagen hast du Geburtstag? Es gibt bereits einen Server, der dies berechnen kann. In diesem Kapitel programmieren wir einen Client zu diesem Server. Dazu muss der Server natürlich Tag und Monat deines Geburtsdatums wissen. Nach dem Verbindungsaufbau schickt der Client deshalb das Geburtsdatum an den Server. Mit dem Byte 0 signalisiert der Client, dass er keine weiteren Daten senden wird. Anschließend antwortet der Server. Er sendet ebenfalls das Byte 0 um anzuzeigen, dass er keine weiteren Daten senden wird:
Aufgabe 1
Schreibe ein Python-Programm, das
- eine Verbindung zu dem Geburtstagsserver aufbaut,
- den Tag und Monat deines Geburtsdatums in eine Folge aus Bytes umwandelt und an den Server schickt,
- das Byte 0 an den Server schickt,
- die Antwort des Servers empfängt, in eine Zeichenkette umwandelt und ausgibt und
- die Verbindung beendet.
Tipps:
-
Verwende die Klasse ISocket aus der Datei socketLib.py:
from socketLib import ISocket
-
Mit dem Befehl
komm_s.sendeString('Hi')
kann eine Zeichenkette gesendet werden. Dieser Befehl wandelt die Zeichenkette zunächst mit Hilfe der ASCII-Tabelle in Bytes um und sendet dann diese Bytes. -
Der Befehl
komm_s.empfangeStringBis(0)
empfängt Bytes, bis das Byte 0 erscheint. Danach wandelt der Befehl die empfangenen Bytes mit der ASCII-Tabelle in eine Zeichenkette um und gibt die Zeichenkette zurück. - Orientiere dich an den Python-Dialogen auf der Seite Erkundung - Anfragen_an_einen_Server_Stellen.