Пример #1
0
        private static void ProcessPacket(ClientManager MyClient, ReadPacket CPacket)
        {
            Header PacketHead = CPacket.GetHeader();

            byte[] PacketBody = CPacket.GetBody();
            byte   PacketType = CPacket.GetPacketType();

            //Console.WriteLine("Receive Packet len: " + PacketHead.len);
            //Console.WriteLine("Packet Type: " + PacketType);
            switch (PacketType)
            {
            case 10:     // version receive
                ParseVersionReceived(MyClient, CPacket);
                break;

            case 21:     // login request
                ParseLoginRequest(MyClient, CPacket);
                break;

            case 27:     // Enter server request
                //Console.WriteLine("Enter server request!");
                SendData.SendResponseEnterServer(MyClient);
                // send packet type 28 user_id (4bytes) + GMS_token (4 bytes)
                break;

            case 153:     // login request 2
                ParseLoginRequest2(MyClient, CPacket);
                break;

            case 151:     // login request 3
                ParseLoginRequest3(MyClient, CPacket);
                break;

            default:
                Console.WriteLine("packet unknow: " + PacketType);
                break;
            }
        }
Пример #2
0
        private static void ParseLoginRequest3(ClientManager MyClient, ReadPacket CPacket)
        {
            using (MemoryStream stream = new MemoryStream(CPacket.GetBody()))
            {
                using (BinaryReader br = new BinaryReader(stream, Encoding.UTF8))
                {
                    br.ReadByte();
                    byte[] userbytes = br.ReadBytes(21);
                    byte[] passbytes = br.ReadBytes(21);

                    string Username = PacketFunctions.ExtractStringFromBytes(userbytes);
                    string Password = PacketFunctions.ExtractStringFromBytes(passbytes);



                    Credentials MyCredential = new Credentials();
                    MyCredential.Username = Username;
                    MyCredential.Password = Password;

                    //Console.WriteLine("login request mode 3: " + Username + " | " + Password);
                    SendData.SendLoginResponse3(MyClient, MyCredential);
                }
            }
        }