Készítsd el a hu.elte.esti.bead
csomagba a KetfajtaSzerver
osztály, amely tartalmazzon főprogramot.
A főprogram indítson el egy szervert (SOR
üzemmódban, lásd lejjebb), amely az első parancssori paraméterben megadott sorszámú porton várja egy kliens beérkezését. A kliens a következő tartalmú sorokat küldheti a szervernek.
uj <port> <szolgáltatás>
A megadott porton induljon el egy új szerver (amely működjön függetlenül az eddigiektől). A
valt <port1> <port2>
A port1
porton működő szerver váltson át a port2
portra: még várja be a következő kapcsolatot a port1
porton, de aztán a következő kliensre már a port2
porton várjon.
torol <port>
A port
porton működő szerver álljon le: még várja be a következő kapcsolatot a porton, de aztán már ne fogadjon több klienst.
vege
A program azonnal álljon le: System.exit(0)
.
sor <fájlnév> <sorszám>
Ezt a kérést csak SOR
üzemmódban működő szerverek fogadják. Az ilyen szerverek visszaküldik a megadott nevű fájl megadott számú sorának tartalmát (ha a fájl létezik, és van ennyi sora). Ha a sor nem érhető el, vagy a szerver nem SOR
üzemmódban van, küldje vissza a "HIBA"
üzenetet egy sorban.
sum <szám>
A szerver megjegyzi az így beküldött számokat, és mindegyik szám beérkeztekor visszaírja a kliensnek egy sorban, hogy az adott szám hányszor érkezett már be (a jelen beérkezést nem számítva).
Mivel a programot telnet kapcsolattal ki lehet próbálni, nem szükséges külön klienst készíteni.
Készíts RMI szolgáltatást, amelyhez tartozó osztályok kerüljenek a hu.elte.esti.bead.rmi
csomagba.
A szolgáltatás interfésze a KetfajtaInterfesz
osztályba kerüljön, és legyen a fenti szervernek megfelelő (int
illetve String
paraméterekkel a megfelelő pozíciókon) annyi különbséggel, hogy most a portok helyét az RMI-be bejegyzett nevek veszik át: "új szerver indításakor" portszám helyett kapjunk egy nevet, és ezen jegyezd be a szolgáltatás új példányát; a valt
és a torol
műveletek szintén nevekkel dolgozzanak portok helyett, és most nincsen külön várakozási kitétel sem.
A szolgáltatást a KetfajtaSzerver
osztály valósítsa meg, ebből a KetfajtaDeploy
indítson el kezdetben egy példányt, és jegyezze be a ketfajta1
néven.
A KetfajtaKliens
osztályba készíts olyan főprogramot, amely kipróbálja a szolgáltatás összes funkcióját.
A program elkészítésével kapcsolatos további részletek:
pl. ne írjon ki a kimenetre szöveget
.pl. ilyen lenne, ha a kliens érvénytelen sort küldene a szervernek
; feltételezhető, hogy minden adat formátuma megfelel a fent leírtaknak.