Diferență între revizuiri ale paginii „POO Lab Lucrarea 4”

De la WikiLabs
Jump to navigationJump to search
Linia 22: Linia 22:
 
# Realizați o clasă numită '''TextClient''', executabilă, cu următoarele restricții:
 
# Realizați o clasă numită '''TextClient''', executabilă, cu următoarele restricții:
 
#* Metoda main din clasă trebuie să deschidă un Socket la adresa localhost (127.0.0.1) pe portul 9000
 
#* Metoda main din clasă trebuie să deschidă un Socket la adresa localhost (127.0.0.1) pe portul 9000
#* Cât timp conexiunea este activă, să citească de la tastatură (folosind clasa Console - vezi [https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#console-- System.console()]) șiruri de caractere cu care apoi să apeleze metodele sendMessage de mai sus (Notă: Aveți dreptul să alegeți ce format doriți pentru a marca un mesaj privat, dar trebuie să fie descris în corpul email-ului în care submiteți tema).
+
#* Cât timp conexiunea este activă, să citească de la tastatură (folosind clasa Console - vezi [https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#console-- System.console()]) șiruri de caractere cu care apoi să apeleze metodele sendMessage de mai sus (Notă: Aveți dreptul să alegeți ce format doriți pentru a marca un mesaj privat, dar trebuie să fie descris în corpul email-ului în care submiteți tema; O sugestie ar fi un text de forma <code>/w John Hello!</code> care specifică un mesaj privat către user-ul John, cu conținutul "Hello!").
 +
# Realizați o clasă numită '''ServerPeer''' cu următoarele restricții:
 +
#* Constructorul clasei trebuie să ia ca argument o referință la un obiect de tip Socket, deja conectat.
 +
#* Cât timp conexiunea nu este întreruptă, să se deserializeze obiecte de tip Message și să se afișeze formatat pe ecran.
 +
# Realizați o clasă numită '''Server''', executabilă, cu următoarele restricții:
 +
#* Metoda main din această clasă trebuie să deschidă un ServerSocket pe portul 9000.
 +
#* Odată conectat un client, se creează un obiect de tip ServerPeer, folosing Socket-ul obținut din ServerSocket care va citi obiectele de pe stream, conform punctului 3 de mai sus.
 +
# Adaptați clasele Message și PrivateMessage astfel încât să poată fi serializate.

Versiunea de la data 1 decembrie 2014 20:52

Noțiuni și cunoștințe necesare

Cerințe

  1. Realizați o clasă numită ClientPeer cu următoarele restricții:
    • Constructorul clasei trebuie să ia ca argumente un String reprezentând un nume de utilizator (expeditorul mesajelor) și o referință la un obiect de tip Socket, deja conectat.
    • Clasa trebuie să aibă două metode:
      • void sendMessage(String message) - creează un obiect de tip Message și il serializează folosind socket-ul disponibil.
      • void sendMessage(String message, String receiver) - creează un obiect de tip PrivateMessage și il serializează folosind socket-ul disponibil.
  2. Realizați o clasă numită TextClient, executabilă, cu următoarele restricții:
    • Metoda main din clasă trebuie să deschidă un Socket la adresa localhost (127.0.0.1) pe portul 9000
    • Cât timp conexiunea este activă, să citească de la tastatură (folosind clasa Console - vezi System.console()) șiruri de caractere cu care apoi să apeleze metodele sendMessage de mai sus (Notă: Aveți dreptul să alegeți ce format doriți pentru a marca un mesaj privat, dar trebuie să fie descris în corpul email-ului în care submiteți tema; O sugestie ar fi un text de forma /w John Hello! care specifică un mesaj privat către user-ul John, cu conținutul "Hello!").
  3. Realizați o clasă numită ServerPeer cu următoarele restricții:
    • Constructorul clasei trebuie să ia ca argument o referință la un obiect de tip Socket, deja conectat.
    • Cât timp conexiunea nu este întreruptă, să se deserializeze obiecte de tip Message și să se afișeze formatat pe ecran.
  4. Realizați o clasă numită Server, executabilă, cu următoarele restricții:
    • Metoda main din această clasă trebuie să deschidă un ServerSocket pe portul 9000.
    • Odată conectat un client, se creează un obiect de tip ServerPeer, folosing Socket-ul obținut din ServerSocket care va citi obiectele de pe stream, conform punctului 3 de mai sus.
  5. Adaptați clasele Message și PrivateMessage astfel încât să poată fi serializate.