Colocviu POO 2015-2016

De la WikiLabs
Jump to navigationJump to search

Să se scrie o clasă seriaf.poo.colocviu.Server care să accepte conexiuni de la clienți și pentru orice client care se conectează, să serializeze un obiect de tip String reprezentand un citat faimos, ales aleator dintr-un vector.

Reguli suplimentare:

  1. Clasa Server trebuie să aibă un constructor cu un argument de tip int: port. Constructorul nu arunca exceptii.
  2. Clasa Server trebuie să aibă o metodă String getRandomQuote(), apelabilă fără un obiect de tip Server, și care la fiecare apel să întoarcă un String reprezentând un citat dintr-o listă de cel puțin 5 citate (scrise de voi, sau cautate pe Internet). Vezi clasa java.util.Random
  3. Clasa Server trebuie să aibă o metodă void listen(), care să accepte conexiuni de la clienți într-o buclă infinită, pe portul dat constructorului, și pentru fiecare client conectat să serializeze un String obțiunt prin apelul metodei String getRandomQuote(). Această metodă trebuie să poată arunca excepții.
  4. Clasa Server trebuie să fie executabilă, iar metoda main trebuie să instanțieze un obiect de tip Server, folosind ca port primul argument specificat la execuție și sa apeleze pentru el metoda listen.

Să se scrie o clasă seriaf.poo.colocviu.Client care să să conecteze la un Server, să citească de la server un String reprezentand un citat pe care să îl afișeze pe ecran.

Reguli suplimentare:

  1. Clasa Client trebuie să aibă un constructor cu două argumente: String host, int port. Constructorul nu arunca exceptii.
  2. Clasa Client trebuie să aibă o metodă String getQuote(), care să se conecteze la un server care rulează host-ul și portul specificat constructorului și să întoarcă un obiect de tip String deserializat dinspre server. Această metodă trebuie să poată arunca excepții.
  3. Clasa Client trebuie să fie executabilă, iar metoda main trebuie să instanțieze un obiect de tip Client, folosind ca host și port primele două argumente specificate la execuție, să apeleze pentru el metoda getQuote și să afișeze string-ul obținut pe ecran.