Rechnernetze-Praktikum SoSe 2005 - Übung 1
Die Abnahme der Lösungen zur nachfolgenden Aufgabenstellung erfolgt im Rahmen des Praktikums am 27. bzw. 28. April 2005.
Insbesondere bei der Implementierung des SimpleNews-Servers empfiehlt es sich, den aus der Vorlesung bekannten Chat-Server entsprechend zu modifizieren bzw. zu erweitern.
Grundrechenarten-Server
Entwickle einen Serverdienst für den Port 9010, welcher zeilenweise seine Aufträge empfängt, und zeilenweise die Ergebnisse sendet. Die Eingangs- und Ausgangsformate (Command und Result) sind wie folgt in Backus Naur Form (BNF) definiert:
Command ::= { ADD | SUB | MUL | DIV } Zahl Zahl
Zahl ::= Ziffer { Ziffer }*
Ziffer ::= { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }
Result ::= Zahl | ERS | ERZ | ERN
Bei der Berechnung des Ergebnisses (Addition, Subtraktion, Multiplikation und Division) ist auf Syntaxüberprüfung (ERS), Test auf Nullteiler (ERZ) und Test auf negatives Ergebnis (ERN) zu achten. Zum Testen des Grundrechenarten-Servers dient der Telnet-Client.
SimpleNews-Server
Entwickle einen Serverdienst für den Port 9020, welcher zeilenweise seine Aufträge empfängt, und zeilenweise die Ergebnisse sendet. Folgende Befehle werden unterstützt:
DOWN : Server beenden wenn kein Poster angemeldet
SHUT : Server bedingungslos beenden
LIST : Rückgabe einer Liste aller angemeldeten Poster
CONN String : Poster anmelden
DCON : Poster abmelden
PMSG String : Meldung in den Newspool aufnehmen
GMSG : Rückgabe einer Liste aller neuen Meldungen seit dem anmeldungsbezogenen letzten GMSG-Befehl
Ungültige Befehle werden ignoriert. Für die Befehle DOWN, SHUT und LIST ist kein vorheriger Befehl CONN notwendig und im Falle der Befehle DOWN und SHUT auch gar nicht sinnvoll. Zum Testen des SimpleNews-Servers dient der Telnet-Client.
Seit dem 25.04.2005 gegen 11:00 Uhr stellt der Host cluster.fh-wedel.de auf Port 9020 einen Dienst bereit welcher obiges SimpleNews-Protokoll serverseitig implementiert. Der Admin behält sich vor, den Serverdienst ohne vorherige Ankündigung neu zu starten (oder zu stoppen).
Folgende Fehlersituationen werden abgefangen :
- Der Client bricht die Verbindung ab
- Wiederholter CONN-Befehl ohne zwischenzeitlichen DCON-Befehl
- DCON-Befehl ohne vorherigen CONN-Befehl
- PMSG-Befehl ohne vorherigen CONN-Befehl
- GMSG-Befehl ohne vorherigen CONN-Befehl