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.