Materiály k semináři
- Text k semináří
- The Java Tutorial: Working with URLs
- The Java Tutorial: All About Sockets
- Introduction to the Java HTTP Client
- Zdrojové kódy
Úkoly
Úkol odevzdejte emailem do 8. 3. 2022 17:00 CET na email roman.vyjidacek@upol.cz s předmětem JJ2_02.
- 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>A dostane od serveru odpověď OK, nebo ERR podle toho, jestli se uživateli podařilo přihlásit.
3. Čtení zpráv
Uložené zprávy si klient může vyzvednout zásláním:
FROM <username>: <message-1> FROM <username>: <message-2> FROM <username>: <message-3> OKPokud 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.