Esempio n. 1
0
        public ServerPackage GetNextPackage(byte[] data)
        {
            ServerPackage result = null;

            using (var stream = new MemoryStream(data))
            {
                result = GetNextPackage(stream);
            }
            return(result);
        }
Esempio n. 2
0
        public ServerPackage GetNextPackage(Stream stream)
        {
            ServerPackage result = null;

            byte[] data = new byte[4];
            stream.Read(data, 0, 4);
            int len = BitConverter.ToInt32(data, 0);

            if (len <= 0)
            {
                return(null);
            }

            ServerPackageType type = (ServerPackageType)stream.ReadByte();

            data = new byte[len - 1];
            stream.Read(data, 0, len - 1);
            switch (type)
            {
            case ServerPackageType.Pong:
                result = new PongPackage();
                break;

            case ServerPackageType.AcceptLogin:
                result = new AcceptLoginPackage();
                break;

            case ServerPackageType.SetRoom:
                result = new SetRoomPackage();
                break;

            case ServerPackageType.UpdatePositions:
                result = new UpdatePositionsPackage();
                break;
            }

            result.FromByteArray(data);
            return(result);
        }