i

Übung - Zeitserver und Echoserver

Aufgabe 1

Schreibe einen Server, der die aktuelle Uhrzeit zurückgibt. Der Client sendet keine Daten. Der Server soll die Uhrzeit sofort nach dem Verbindungsaufbau senden.

Du kannst folgenden Client zum Testen verwenden: zeit-client.py

Tipp 1:
Orientiere dich an dem Server-Dialog auf der Seit Erkundung - Sockets auf dem Server.
Genauere Erläuterungen zu den Befehlen findest du im Fachkonzept - Verbindungssocket.

Tipp 2:
Verwende die Klasse IVerbindungssocket aus der Datei socketLib.py.

Tipp 3:


>>> from datetime import datetime
>>> jetzt = datetime.now()
>>> jetzt.hour
15
>>> jetzt.minute
47
>>> jetzt.second
30
>>> str(jetzt.hour) + ':' + str(jetzt.minute) + ':' + str(jetzt.second)
'15:47:30'

Tipp 4: Orientiere dich an folgender Abbildung:

Ablauf Zeitserver

Mehrere Verbindungen nacheinander bearbeiten

In der letzten Aufgabe wurde der Server nach der Bearbeitung einer Anfrage beendet. In der Regel soll ein Server jedoch nacheinander mehrere Verbindungen bearbeiten. Dazu kann man den Programmteil, der eine Verbindung bearbeitet, in eine Endlosschleife packen. Der Zeitserver aus der voerherigen Aufgabe sieht dann so aus:

from socketLib import IVerbindungsSocket
from datetime import datetime

verbindungs_s = IVerbindungsSocket()
verbindungs_s.anPortBinden(5000)

while True:
    komm_s = verbindungs_s.verbindungAnnehmen()
    
    jetzt = datetime.now()
    jetztString = str(jetzt.hour) + ':' + str(jetzt.minute) + ':' + str(jetzt.second)

    komm_s.sendeString(jetztString)
    komm_s.sendeBytes([0])

    komm_s.trennen()

Aufgabe 2

Schreibe einen Echo-Server. Dies ist ein Server, der die Daten, die er vom Client erhält, wieder an den Client zurück sendet. Verwende eine Endlosschleife, so dass dein Server mehrere Verbindungen nacheinander bearbeiten kann.

Du kannst folgenden Client zum Testen verwenden: echo-client.py

Tipp: Orientiere dich an folgender Abbildung:

Ablauf Echoserver

Zusatzaufgabe: Verändere die Daten auf dem Server. Du könntest den Echo-Server z.B. zu einem Schrei-Server erweitern. Der Schreiserver schickt die Anfrage des Clients zurück - ersetzt aber alle Kleinbuchstaben durch Großbuchstaben und alle Satzzeichen durch Ausrufezeichen.

Suche

v
100.132.4.8
inf-schule.de/entwuerfe/Anwendungsebene/socketprogrammierung/Zeitserver_Echoserver
inf-schule.de/100.132.4.8
inf-schule.de/@/page/Vmu4ZH4NaUW1C4t2

Rückmeldung geben