Diferență între revizuiri ale paginii „POO Lab Lucrarea 5”
De la WikiLabs
Jump to navigationJump to searchLinia 16: | Linia 16: | ||
== Cerințe == | == Cerințe == | ||
− | * | + | * Modificați clasa '''ClientPeer''' scrisă la tema anterioară, transformând-o într-un fir de execuție care în paralel cu firul principal de execuție, să citească obiecte de tip '''Message''' dinspre server și să le afișeze pe ecran. |
− | + | * Modificați clasa '''ServerPeer''' scrisă la tema anterioară, transformând-o într-un fir de execuție. Acest fir nou de execuție trebuie să citească obiectele de tip '''Message''' și '''PrivateMessage''' de la clientul asociat și să le distribuie corect la ceilalți clienți. | |
− | + | * Modificați clasa '''Server''' scrisă la tema anterioară, astfel încât la conectarea unui client, aceasta să creeze un nou '''ServerPeer''' pe care să-l pornească ca Thread, apoi să revină în metoda '''ServerSocket.'''.''accept()'', așteptând o nouă conexiune. | |
− | + | ||
− | * | + | Note: |
− | + | * Clasa '''Server''' ar trebui să păstreze o listă cu toți clienții conectați (cu obiectele de tip '''ServerPeer'''). Pentru acest lucru vă puteți folosi de clasa [http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html java.util.ArrayList]. | |
− | * | + | * Această listă trebuie să fie menținută în sensul că noii clienți trebuie adăugați, iar clienții deconectați trebuie eliminați. |
− | + | * Această listă ar trebui să fie accesibilă firelor de execuție de tip '''ServerPeer''' prin metode sincronizate. | |
− | |||
− | |||
− | |||
− | * |
Versiunea de la data 14 decembrie 2014 20:35
Noțiuni și cunoștințe necesare
- Paradigma Obiect-Orientare; Clase și obiecte
- Noțiuni despre Java
- Realizarea și execuția unui program Java
- Sintaxa limbajului Java; Structura lexicală a unui program
- Convenții de programare
- Noțiuni avansate de programare obiect-orientată
- Java Application Programming Interface (API)
- Stream-uri de Input/Output
- Tratarea excepțiilor
- Serializarea obiectelor
- Socket-uri de rețea
- Programare concurentă - fire de execuție (Threads)
Cerințe
- Modificați clasa ClientPeer scrisă la tema anterioară, transformând-o într-un fir de execuție care în paralel cu firul principal de execuție, să citească obiecte de tip Message dinspre server și să le afișeze pe ecran.
- Modificați clasa ServerPeer scrisă la tema anterioară, transformând-o într-un fir de execuție. Acest fir nou de execuție trebuie să citească obiectele de tip Message și PrivateMessage de la clientul asociat și să le distribuie corect la ceilalți clienți.
- Modificați clasa Server scrisă la tema anterioară, astfel încât la conectarea unui client, aceasta să creeze un nou ServerPeer pe care să-l pornească ca Thread, apoi să revină în metoda ServerSocket..accept(), așteptând o nouă conexiune.
Note:
- Clasa Server ar trebui să păstreze o listă cu toți clienții conectați (cu obiectele de tip ServerPeer). Pentru acest lucru vă puteți folosi de clasa java.util.ArrayList.
- Această listă trebuie să fie menținută în sensul că noii clienți trebuie adăugați, iar clienții deconectați trebuie eliminați.
- Această listă ar trebui să fie accesibilă firelor de execuție de tip ServerPeer prin metode sincronizate.