Úkoly č. 2

  • Implementujte jednoduchou síťovou službu pro posílání zpráv.
  • Implementujte serverovou i klientskou část.
  • Komunikace klienta se serverem by měla probíhat podle následujícího protokolu.

Protokol

1. Příhlášení

Klient se přihlásí k serveru zasláním:

CONNECT <username> <password>
A dostane od serveru odpověď OK, nebo ERR podle toho, jestli se uživateli podařilo přihlásit.

2. Poslání zprávy

Uživatel může zaslat zprávu jinému uživateli tím, že klient serveru zašle text ve tvaru:

MSG FOR <username>: <message>
Pokud uživatel existuje, je zpráva pro něj uložena na straně serveru a je vrácena odpověď OK, jinak je vrácena odpověď ERR.

3. Čtení zpráv

Uložené zprávy si klient může vyzvednout zásláním:

READ
Přičemž server zašle odpověď ve tvaru:
FROM <username>: <message-1>
FROM <username>: <message-2>
FROM <username>: <message-3>
OK
Pokud je zpráva přečtena, je odstraněna ze serveru.

4. Odhlášení

Odhlášení klienta se provede zasláním:

LOGOUT
Server uživatele odhlásí, vrací OK a uzavře spojení.

Příklad komunikace

S: <server naslouchá>
C: <klient se připojí>
C: CONNECT alice nbusr123
S: OK
C: READ
S: FROM bob: hello alice!
   FROM chuck: this is a chuck's message.
   OK
C: READ
S: OK
C: MSG FOR bob: hello bob!
S: OK
C: MSG FOR david: hi david
S: ERR
C: LOGOUT
S: OK
S: <server ukončí spojení>

Poznámky

  • Seznam uživatelů a jejich hesel bude uložen na straně serveru, jak to vyřešíte, je čistě na vás.
  • Zasílané zprávy mohou být libovolné řetezce neobsahující znaky \r a \n.

Vyřešené úkoly zašlete do 28.2.2018 13:00 CET na email petr.krajca (zavináč) upol.cz s předmětem: ZP4JV02. Zasílejte pouze zdrojové kódy. Pokud chcete zdrojové kódy poslat zkomprimované, použijte buď formát zip nebo kombinaci tar+gz.


Last update on 20. 2. 2018 13:55
Powered by Schemik.

© Petr Krajča, 2010, 2012
petr.krajca (at) upol.cz