Hirdetés

Új hozzászólás Aktív témák

  • Sanyix

    őstag

    Hi!

    Adott egy mmo játék protokollja. Valahogy úgy néz ki, hogy egy tcp adatfolyamon belül olyan logikai csomagok vannak.

    A csomagok változó hosszúságúak, van max 10 féle login csomag, és még vagy 40 ingame csomag, de az nem érdekes, azt ahhoz nem kell nyúlni.

    A csomagok elején rögtön egy byte van, ez azonosítja a csomag típusát (mit tartalmaz) vannak benne stringek, intek, byte-ok, boolean-ek.

    A lényeg annyi lenne, hogy loginkor a kliens bejelentkezik felhasználónév/jelszót küld, szerver válaszol hogy rendben van, küld egy gameszerver listát, majd a kliens küldi a választást, amire a szerver jó esetben küld egy visszaigazolást, majd innentől már csak a játékrésszel kommunikál, amihez ugye nem kell nyúlni. A lényeg, hogy a login szerverrel való kommunikációnál, a kliens által küldött csomagokat le kellene menteni, majd máskor a szerver által küldött megfelelő csomagra válaszul be kéne helyettesíteni a megfelelő mentett csomagot, a normál kliens csomagjainak helyére.

    A kérdés az lenne, hogy a csomag értelmezést hogyan lehetne egyszerűen megcsinálni? Java-ban csinálnám, mert ehhez értek, de gondolom lenne gond az adattípusok közti kompatibilitással, mivel a szerver valószínűleg c-ben lett írva.
    Bár igazából az is elég lenne, ha a szerver által küldött csomagnak csak a típusát tudjam (és a hosszát persze, hogy tudjam hol a vége), mert ennél már lehet tudni mi a válasz. De a kliens válaszcsomagját is úgy kellene lementeni, hogy pontosan ugyanúgy vissza lehessen helyettesíteni majd később.

    Jó lenne ha nem ilyen readbyte, readint, és így tovább sorozatokkal kéne olvastatni. Objektumként nem lehet sehogy? Mert ugye javaban lehet küldeni objektumot is hálózaton, de gondolom úgy alapon tökmás lenne a kódolása ennek mint azoknak az adatcsomagoknak..

Új hozzászólás Aktív témák