Kockadobás kliens-szerver alkalmazás

Fejlesszünk elosztott, hálózatos, datagram alapú üzenetküldéssel megvalósított Java alkalmazást!

A kockadobás kliens egyszerre két szabályos dobókockával dob, amit ezerszer megismétel és a dobott számok összegét datagram típusú üzenetküldéssel folyamatosan elküldi a szervernek. A szerver localhost-on fut és egy megadott porton keresztül várja a klienstől. A szerver és a kliens egyaránt szálkezelést alkalmazó konzolos alkalmazás.

A projektben van egy swing GUI-s alkalmazás, amely JFreeChart oszlopdiagramon – folyamatosan frissítve – megjeleníti az összesített adatokat, mindez a szerver üzenetküldésével irányítva (amint beérkezik egy dobott (2-12-ig) összeg).

A kommunikációnak – a lehetőségekhez képes – biztonságosnak és – a hálózati adatforgalmat tekintve – takarékosnak kell lennie! Ennek részeként szükséges egy azonosító és egy egyszerű szabály (protokoll).

Tekintsük át mondatszerűen a szálkezelést használó kliens és szerver kommunikációhoz kötődő feladatait:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Kliens (háttérszálon):
  ciklus 1-től 1000-ig egyesével
    DatagramSocket létrehozása
    dobás1, dobás2, dobásÖsszeg előállítása
    üzenet előállítása //pl.: "12;kocka2#"
    DatagramPacket létrehozása
    üzenet elküldése a szervernek
    visszhang/log kiírása a konzolra
    DatagramSocket lezárása
    várakoztatás
  ciklus vége

Szerver (háttérszálon):
  ciklus(végtelen)
    DatagramSocket létrehozása
    DatagramPacket létrehozása
    üzenet fogadása a klienstől
    DatagramSocket lezárása
    ha(valid az üzenet) akkor
      dobásÖsszeg feldolgozása
      ablak grafikonjának frissítése (GUI szálon)
    elágazás vége
  ciklus vége

 
Ezek működését összefogja egy központi vezérlőosztály és a programok az alábbiak szerint működnek együtt:

A bejegyzéshez tartozó forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladat a Java EE szoftverfejlesztő tanfolyam 1-8. óra: Elosztott alkalmazások, webszolgáltatások, szálkezelés, párhuzamosság alkalmához kapcsolódik.

A képernyőről a videó a FlashBack Express programmal, a videóból az animált gif az aconvert.com weboldalon készült.

Szólj hozzá!