9. feladatsor

Néhány feladat, de itt már erősen számítunk az önállóságára, és nem adunk megoldási útmutatást.



Egyszerű kliens-szerver alkalmazás



Írjon egy egyszerű kliens-szerver alkalmazást. A kliens grafikus felületű legyen, melyen az alábbi grafikus komponensek szerepeljenek:

– beviteli mező a szerver IP címének a részére

– beviteli mező a szerver port részére

– beviteli mező a szám részére

– címke az üzenetek megjelenítéséhez

– nyomógomb: kapcsolódás és üzenet elküldése a szervernek

A szerver olvassa be a klienstől kapott (egész) számot, és küldje vissza a négyzetét.


Először próbálja úgy megoldani, hogy a szerver csak egyetlen klienst tud kiszolgálni, utána úgy, hogy egyszerre többet is. A szervert természetesen nem kell grafikus felületűre írni. Kliens oldalon figyeljen arra is, hogy ne lehessen kétszer kapcsolódni, ill. hogy jelezze, ha hibás számot (vagy nem számot) írunk be.


Chat



Írjon chat programot. Fantáziájára van bízva, hogy mennyire összetett változatot talál ki.


Saját fészbúk



Az igazi facebook bizony jócskán visszaél(het) az adatainkkal, ezért írjon meg egy saját változatot. A megoldás a fantáziájára van bízva, most csak egy ötletet adunk hozzá.

A szerver lesz a „fészbúk felület”, erre lehet bejelentkezni és üzeneteket küldeni. Az üzenetküldő megadja a becenevét és átküld egy avatárt is. A 750 x 700-as felület 250 széles baloldali részén látható a bejelentkezettek avatárja, a jobboldalon pedig az üzenetek. Ha valaki kijelentkezik, akkor eltűnik az avatárja, az üzenetek között pedig jelezzük, hogy az illető kilépett.

A kliens-oldal egyszerűbb: egy 500 x 300-as felületről kapcsolódhat a szerverhez, mégpedig úgy, hogy kap­csolódás előtt kiválaszt egy avatárt, és megadja a bece­nevét, kapcsolódás után pedig üzengethet.

Adatok: feszbuk.zip

A feladat eléggé összetett, próbálkozzon vele, ha izgatja, de az elsődleges cél inkább a fantáziájának felébresztése volt.

Ha meg akarja oldani, akkor a legnagyobb probléma a képek átküldése, ugyanis csak szerializálható objektumokat lehet átküldeni, a képek viszont nem azok. Objektumként csak ImageIcon típusú példányokat tudunk átküldeni. Ezért célszerű egy szerializálhatónak deklarált Adat nevű osztályt létrehozni a becenév és az ImageIcon típusú avatárból, és ezt utaztatni a kliens és szerver között.