i

Erkundung - Anfragen an einen Server stellen

Hinweise für die Lehrkraft - Vorbereitungen vor dem Unterricht

Auf dieser Seite sollen die Schülerinnen und Schüler Verbindungen zu einem Zeitserver (Aufgabe 1) und einem Schreiserver (Aufgabe 2) herstellen. Dazu müssen die beiden Server auf einem Lehrerrechner laufen, der im Netzwerk erreichbar ist.

Server zu Aufgabe 1: a1-zeitserver.py

Server Aufgabe 2: a2-schreiserver.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 die beiden TCP-Ports 5000 und 5001 eingerichtet werden. Nach der Unterrichtsstunde sollte die Firewallausnahme wieder deaktiviert werden.

Aufgabe 1

Ein Zeitserver ist ein Server, der die aktuelle Zeit an Clients sendet. In dieser Aufgabe sollst du eine Verbindung zu einem Zeitserver herstellen und die aktuelle Uhrzeit empfangen.

  1. Führe folgende Datei in deiner Python-Entwicklungsumgebung aus: socketLib.py.
    Probiere danach den folgenden Python-Dialog aus:
Die IP-Adresse des Servers wird im Unterricht bekannt gegeben. Ersetze im folgenden Dialog 127.0.0.1 durch die IP-Adresse des Servers.
>>> komm_s = ISocket()
>>> komm_s.verbinden('127.0.0.1', 5000)
>>> komm_s.empfangeBytesBis(0)
[48, 57, 58, 51, 48]
>>> chr(48)
'0'
>>> chr(57)
'9'
>>> chr(58)
':'
>>> chr(51)
'3'
>>> chr(48)
'0'
>>> komm_s.trennen()
  1. Bringe die Befehle aus dem letzten Python-Dialog in die richtige Reihenfolge und ordne die Kommentare den Befehlen zu.
    Verschiebe die Zeilen mit gedrückter linker Maustaste:
  • >>> # Verbindung aufbauen
  • >>> komm_s = ISocket()
    >>> komm_s.verbinden('127.0.0.1', 5000)
  • >>> # Bytes empfangen bis das Byte 0 empfangen wird
  • >>> komm_s.empfangeBytesBis(0)
  • >>> # empfangene Bytes in Zeichen umwandeln
  • >>> chr(48)
    >>> chr(57)
    >>> chr(58)
    >>> chr(51)
    >>> chr(48)
  • >>> # Verbindung beenden
  • >>> komm_s.trennen()
  1. Beschreibe, was passiert, wenn du den Python-Dialog ausprobierst.

Aufgabe 2

  1. Führe folgende Datei in deiner Python-Entwicklungsumgebung aus: socketLib.py.
    Probiere danach den folgenden Python-Dialog aus:
Die IP-Adresse des Servers wird im Unterricht bekannt gegeben. Ersetze im folgenden Dialog 127.0.0.1 durch die IP-Adresse des Servers.
>>> komm_s = ISocket()
>>> komm_s.verbinden('127.0.0.1', 5001)

>>> ord('h')
104
>>> ord('i')
105

>>> komm_s.sendeBytes([104, 105])
>>> komm_s.sendeBytes([0])

>>> komm_s.empfangeBytesBis(0)
[72, 73]

>>> chr(72)
'H'
>>> chr(73)
'I'

>>> komm_s.trennen()
  1. Bringe die Befehle aus dem letzten Python-Dialog in die richtige Reihenfolge und ordne die Kommentare den Befehlen zu.
    Verschiebe die Zeilen mit gedrückter linker Maustaste:
  • >>> # Verbindung aufbauen
  • >>> komm_s = ISocket()
    >>> komm_s.verbinden('127.0.0.1', 5001)
  • >>> # Verwende die ASCII-Tabelle, um die Zeichenkette 'hi' in eine Liste aus Bytes umzuwandeln
  • >>> ord('h')
    >>> ord('i')
  • >>> # Sende die Liste an den Server
  • >>> komm_s.sendeBytes([104, 105])
  • >>> # Dem Server mitteilen, dass wir keine weiteren Daten mehr senden:
  • >>> komm_s.sendeBytes([0])
  • >>> # Antwort des Servers empfangen
  • >>> komm_s.empfangeBytesBis(0)
  • >>> # Antwort des Servers mit Hilfe der ASCII-Tabelle in Zeichen umwandeln
  • >>> chr(72)
    >>> chr(73)
  • >>> # Verbindung beenden
  • >>> komm_s.trennen()
  1. Vergleiche die beiden Python-Dialoge in den Aufgaben 1 und 2 (d.h.: beschreibe Unterschiede und Gemeinsamkeiten).
  2. Nenne Stellen der Python-Dialoge, die du noch nicht verstehst.

Aufgabe 3

Lies das Fachkonzept - Client-Server-System und fasse es knapp in eigenen Worten zusammen.

Suche

v
100.132.4.1
inf-schule.de/entwuerfe/Anwendungsebene/socketprogrammierung/Anfragen_an_einen_Server_Stellen
inf-schule.de/100.132.4.1
inf-schule.de/@/page/bKsvIEFtKfF3eKaR

Rückmeldung geben