Egy egyszerű kliens-szerver alkalmazás a java

„Ügyfél-kiszolgáló” egy nagyon gyakori és logikai alkalmazás architektúra. Úgy tűnik számomra, hogy manapság ritka, hogy egy önálló kliens alkalmazás. Ezért úgy döntöttem, hogy gondoljunk az építési kliens-szerver alkalmazások Java hivatkozás nélkül egy adott feladatot. Először röviden végigmenni az osztály szerkezetét az alkalmazás, majd nézd meg a különböző végrehajtását minden osztályban. Végén ezt a cikket adok egy linket letölteni az archívum a kész szerkezet a kérelmet. Tehát kezdjük.

A fő összetevői a kérelem

A fő összetevői természetesen a kliens és a szerver is. Azonban amellett igényelnek több támogatási csomagot osztályok, hogy a legegyszerűbb esetben lesz felelős az üzenetek cseréje a kliens és a szerver között. A minimális konfiguráció szükséges egy osztály: MessageReader / MessageWriter (olvas / ír egy üzenetet a stream socket), MessageFactory (amely az azonosítók az összes lehetséges üzenetek), egy sor kérés üzenet (Request), és egy sor-válasz üzenetet (Response). Mindegyikük kerül a «core» csomag, ami kell mind a kliens és a szerver.

Tekintsük az osztály szerkezetét a projekt, majd lépni a végrehajtás.

Class kliens-szerver alkalmazás szerkezetének

Az ügyfél forráskód Java

Foglalkozik a kliens sokkal könnyebb, ő lényegében nem csinál semmit szuper kifinomult, egyszerűen létrehoz egy socket, és csatlakozik a socket szerver segítségével a szalag host: port. Ügyfél launcher létrehoz egy objektumot, és megkezdi a munkáját. Idézem a forráskód importálása nélkül, bármilyen IDE csatlakozik hozzájuk (akik írni Java pontosan tudja, mi nagyon nehéz IDE nélkül). Ezen túlmenően, a végén a cikk, akkor töltse le a fájlt a projekthez.

ClientLauncher.java

Client.java

Az „alkalmazás logika”, mármint protokoll üzenetküldő szerverhez át minden adatot, hogy elérjék a végső célt.

Forrás szerver kódot Java

Emlékszem, hogy a ClientSession osztály leírja az alapvető algoritmus működik a kliens, üzenetküldés, adatok, és így tovább. A Context osztály általános információkat tartalmaz az összes kiszolgáló ügyfelek, például a módját, hogy megmentse a naplókat.

ServerLauncher.java

Server.java

Context.java

ClientSession.java

SessionsManager.java

Kisegítő osztályokat az «core» csomag

Azzal, hogy minden a korrepetálásának egy macska, a neve osztály pontosan megfelel a nevek a listán a „class szerkezet” fölött, meg tudja határozni a csomag minden osztályban.

Néhány szó az üzeneteket, kérés és válasz osztályok absztrakt és úgy járnak, mint osztályozók üzenetét. Ezzel a nagyon egyszerű megkülönböztetni a „igények” és a „válaszokat”. Ebben a példában adtam csak egy üzenetet - kézfogás. amely felelős az első „kézfogás” a kliens és a szerver. Minden további kommunikáció nyilvántartásba kell venni az osztály MessageFactory példája a két.

következtetés