i

Erkundung - Anfragen an einen Server stellen

In den folgenden Aufgaben stellst du eine Verbindung zu einem Server her. Du kannst dazu ...

  • ... entweder eine Verbindung zu einem Lehrerrechner herstellen. In diesem Fall werden die IP-Adresse und Port der Server im Unterricht bekannt gegeben.
  • ... oder auf deinem eigenen Computer den Server und deinen Python-Dialog ausführen. Wie das geht, kannst du im Exkurs_Client_Server_gleicher_Computernachlesen

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.
Server dieser Aufgabe: a1-zeitserver.py

  1. Führe folgende Datei in deiner Python-Entwicklungsumgebung aus: socketLib.py.
    Probiere danach den folgenden Python-Dialog aus:
>>> 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

Server dieser Aufgabe: a2-schreiserver.py

  1. Führe folgende Datei in deiner Python-Entwicklungsumgebung aus: socketLib.py.
    Probiere danach den folgenden Python-Dialog aus:
>>> komm_s = ISocket()
>>> komm_s.verbinden('127.0.0.1', 5001)

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

>>> komm_s.sendeBytes([104, 49])
>>> 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, 49])
  • >>> # 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