Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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.

Úlohy na cvičení

  1. Vytvořte program, který zobrazí obrázek, jehož URL je zadáno jako argument na příkazové řádce.
  2. 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
  3. Komunikační protokol:
    1. HELO jmeno_uzivatele
    2. ID ID_uživatele
    3. EVENT eventPlace(bude si určovat klient)
    4. ENTRY nebo EXIT - říká, jestli uživatel přišel nebo odešel
    5. 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
    6. 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.
  4. Protokol si můžete otestovat přes příkaz telnet
  5. 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)
  6. 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.
  7. 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ě.
  8. Otestujte si své klienty a servery mezi ostatními studenty v učebně.

Studijní materiály

courses/b0b36pjv/tutorials/10/start.txt · Last modified: 2020/05/09 19:35 by seredlad