Join Date: Aug 2007
Posts: 8643
User-Rating:
|
@smp:
CPP Code: class Packet { public: int id; virtual ~Packet(); virtual bool Send(NetworkStream *writer) = 0; virtual bool Receive(NetworkStream *reader) = 0; }; //--------------------------------------------------------------------------- class PacketStatus : public Packet { public: char status; //1 = connect, 2 = disconnect, 3 = version int data; PacketStatus() { id = 1; } virtual bool Send(NetworkStream *writer); virtual bool Receive(NetworkStream *reader); }; //--------------------------------------------------------------------------- class PacketPlayerData : public Packet { public: int index; //0 - 64 int x; //-100 - 100 int y; //-100 - 100 bool isEnemy; //true/false PacketPlayerData() { id = 2; } virtual bool Send(NetworkStream *writer); virtual bool Receive(NetworkStream *reader); };
Ablauf: 1. Client verbindet sich zum Server (App) auf port 3323 2. Client schickt ein PacketStatus mit status = 1 (connect) 3. Server antwortet darauf mit einem PacketStatus. status = 3 und version ist auf die Version der Serverversion gesetzt. Das war/ist dazu gedacht, dass der Client abbrechen kann, falls die Version unerwartet ist, hab ich aber nicht eingebaut bei dem was ich released hab. 4. Client sendet ab jetzt PacketPlayerData mit entsprechenden Werten (siehe Kommentar) 5. Wenn sich der Client disconnected, schickt er vorher noch ein PacketStatus mit status = 2 (disconnected)
greetz KN4CK3R
|