Seminář 2 - Síťové služby

Zdroje

Úkol č. 2

  1. Implementujte jednoduchou síťovou službu pro posílání zpráv.
  2. Implementujte serverovou i klientskou část.
  3. 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í.
  5. 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