fel
le

ZH - adok-veszek

Készítsen kliens + szerver alkalmazást az alábbi problémára: a közösség egy vatera-szerűen működő elad-vesz szervert üzemeltet. Minden tárgynak van - id (egész szám) - neve (szöveg) - ára (egész szám) - felrakójának login neve (string) - vásárló login neve (string, csak ha már megvásárolta valaki)

A szerver felé fel lehet ajánlani (FELRAK) eladásra tárgyat, amit a login-el rendelkező személyek megvehetnek (MEGVESZ). A szerver az eladott tárgyak listáját gyűjti, melyet meg is lehet tekinteni (ELADASOK). A hibás (véletlen) felrakást törölni (TÖRLÉS) lehet. A megvehető tárgyak listáját (LISTAZ) viszont login nélkül is meg lehet nézni. A felrakott tárgyaknak a szerver ad egyedi azonosítót (id). Ennek megfelelően az alábbi protokollt kell alkalmazni:

  • LISTAZ: eredménye a megvehető tárgyak listája (login nélkül is működik), az alábbi sorokból áll: <id>|<felrako>|<megnevezes>|<ár>
  • LOGIN|<user>|<jelszo>: eredménye vagy OK vagy ERR|<hibaüzenet>. elfogadható, ha a program szövegébe "beégetett" loginok vannak, 2-3 darab.
  • FELRAK|<megnevezes>|<osszeg>: csak sikeres login után kiadható parancs. a szerver válasza OK vagy ERR|<hibaüzenet>
  • MEGVESZ|<id>: csak sikeres login után kiadható parancs. a szervernek garantálnia kell, hogy egy terméket csak egy vásárló vihet el. a szerver válasza vagy OK vagy ERR|<hibaüzenet>.
  • TÖRÖL|<id>: csak sikeres login után lehet törölni. most az nem cél, hogy csak a saját magunk által felrakott itemeket lehessen törölni, bárkiét le lehet - amennyiben az nem került időközben eladásra.
  • ELADASOK: login nélkül is működő parancs, kilistázza ki mit vett meg: (<id>|<felrako>|<megnevezes>|<osszeg>|<vasarlo> formájú sorok.

A szerver egy időben több klienssel is tartsa a kapcsolatot. A klienseknek a logint csak egyszer kell beküldeni (logout parancs nincs). A megoldásokat (kliens.cs és szerver.cs fileokat) csatolva a xyz@internet.hu email címre kell beküldeni. A forráskódokban a programozó neve legyen komment formájában benne!

Hernyák Zoltán
2013-04-15 14:00:10