====== 10. Cvičení ====== Na tomto cvičení byste si měli vyzkoušet jednoduchou komunikaci s HTTP serverem a naprogramovat si komunikaci komunikaci Klient-Server. Reseni v roce 2017/18: {{ :courses:b0b36pjv:tutorials:10:site-solution.zip |zde}} ===== Úlohy na cvičení ===== - Vytvořte program, který zobrazí obrázek, jehož URL je zadáno jako argument na příkazové řádce. - Vytvořte serverovou aplikaci, která bude na konkrétním portu (používejte porty vyšší než 1024) čekat na spojení a odpovídat na požadavky. Bude se jednat o docházkový server, který bude uchovávat informace: * ID uživatele - long ID * Jméno uživatele - String name * Místo události - String eventPlace * Ćas události - java.util.Date time * Odchod/příchod - boolean access - Komunikační protokol: - HELO jmeno_uzivatele - ID ID_uživatele - EVENT eventPlace(bude si určovat klient) - ENTRY nebo EXIT - říká, jestli uživatel přišel nebo odešel - Pokud je některý příkaz chybný, server vypíše BYE a ukončí komunikaci. Pokud je příkaz v pořádky vypíše jako potvrzení OK po každém příkazu - Po každé provedené seanci server uloží informaci do Listu a vypíše informaci od klienta na konzoli a uloží do Listu. Seanci, která neproběhla v pořádku vypíše na standardní chybový výstup. - Protokol si můžete otestovat přes příkaz "telnet" - Vytvořte si klienta, který bude v pravidelných posílat náhodně vygenerovaná data a ověří funkčnost serveru. Jako parametr na příkazovém řádku dostane jméno místa, kde nastala událost (proměnná eventPlace) - Doplňte server o příkaz GET /data.html, který klientovi pošle HTML soubor se všemi došlými daty ze všech zdrojů události. Klient tento soubor uloží na disk. - Doplnte server o příkaz GETBINARY, která by klientovi zaslala serializovaný List všech událostí událostí a klient tato data vypíše na konzoli v čitelné podobě. - Utestujte si své klienty a servery mezi ostatními studenty v učebně. ==== Studijní materiály ==== * [[site|Sítě v Javě]]