Übung 1
Die nachfolgende Aufgabenstellung wurde bereits in der Vorlesung am 09.04.2003 besprochen. Im Rahmen des Praktikums am 28./29.04.2003 erfolgt die Abnahme der Lösungen.
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 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 | ERN
Bei der Berechnung des Ergebnisses (Addition, Subtraktion, Multiplikation und Division) ist auf Syntaxüberprüfung (ERS) und Nullteilertest (ERN) zu achten. Zum Testen des Grundrechenarten-Servers dient der Telnet-Client. Anschließend ist noch ein einfacher Grundrechenarten-Client zu implementieren.
Chat-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 Chatter angemeldet
SHUT : Server bedingslos beenden
LIST : Liste angemeldeter Chatter
CONN String : Chatter anmelden
DCON : Chatter abmelden
MESG String : Meldung an alle angemeldeten Chatter
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 Chat-Servers dient der Telnet-Client. Anschließend ist noch ein einfacher Chat-Client (chatter) zu implementieren, der wie folgt aufgerufen wird:
chatter Hostname Portname Nicname
Seit dem 23.04.2003 gegen 12:00 Uhr stellt der Host kuemmel.fh-wedel.de auf Port 9020 einen Dienst bereit welcher obiges Chat-Protokoll serverseitig implementiert.
Folgende Fehlersituationen werden abgefangen :
- Der Client bricht die Verbindung ab
- Wiederholter CONN-Befehl ohne zwischenzeitlichen DCON-Befehl
- DCON-Befehl ohne vorherigen CONN-Befehl
- MESG-Befehl ohne vorherigen CONN-Befehl