i

Programmieren eines Nachrichtensystems - Server

Aufgabe 1

Programmiere einen Server für unser Mailsystem. Der Server soll das auf der Seite Programmieren eines Nachrichtensystems - Protokoll vorgestellte Protokoll verwenden.

Tipps zu Aufgabe 1

Die Nachrichten müssen auf dem Server gespeichert werden. Eine Nachricht kann man in einem Tupel speichern:

>>> nachricht = ('Paul', 'Lara', 'Hallo Lara, viele Grüße von Paul')
>>> print('Absender: ' + nachricht[0])
>>> print('Empfänger: ' + nachricht[1])
>>> print('Text: ' + nachricht[2])

Der Server muss mehrere Nachrichten speichern. Dazu könnte man eine Liste von Nachrichtentupeln verwenden:

nachrichten = [
    ('Paula', 'Lisa', 'Hallo'), 
    ('Simon', 'Anna', 'Wie geht es dir?')
]

Mit folgendem Quellcodeschnipsel könnte man dann eine Nachricht suchen und aus der Liste der Nachrichten entfernen:

gefunden = False
indexLetzteGefundeneNachricht = -1
        
anzahlNachrichten = len(nachrichten)
    for i in range(anzahlNachrichten):
        nachricht = nachrichten[i]
        if nachricht[1] == empfaenger:                
            indexLetzteGefundeneNachricht = i
            gefunden = True
            
if gefunden:
    nachrichten = nachrichten[:indexLetzteGefundeneNachricht] + nachrichten[(indexLetzteGefundeneNachricht+1):]

Vertiefungsaufgaben:

  • Bisher kann man beim erstellen einer neuen Nachricht einen beliebigen Absender eingeben. Der Server prüft nicht, ob die Nachricht wirklich von dem angegebenen Absender stammt. Erweitere das Mailsystem so, dass jeder Benutzer ein Passwort besitzt. Bei jeder Anfrage an den Server muss dieses Passwort mitgeschickt werden. Der Server soll damit prüfen, ob der Benutzer berechtigt ist, diese Anfrage zu stellen. Im einfachsten Fall stehen die Benutzernamen und Passwörter direkt im Quelltext des Servers.
  • Bisher speichert der Server die Daten in einer Liste im Arbeitsspeicher des Computers. Wird der Server beendet und anschließend wieder gestartet, ist diese Liste leer. Die Nachrichten gehen dabei also verloren. Ändere den Server so, dass die Nachrichten in einer Datenbank gespeichert werden.

Suche

v
10.5.4.8
www.inf-schule.de/rechnernetze/anwendung/socketprogrammierung/Nachrichtensystem_Server
www.inf-schule.de/10.5.4.8

Rückmeldung geben