/// <summary>
        /// 解析数据
        /// </summary>
        /// <param name="source"></param>
        private void AnalysisRequest(SrvDataSource source)
        {
            byte[] req = source.Message as byte[];
            //ID,数据,AES
            if (req[0] == 1)
            {
                //登陆请求

                byte[] bytes = new byte[req.Length - 1];
                Array.Copy(req, 1, bytes, 0, bytes.Length);
                ClientLoginRequest request = StructManager.BytesToStruct <ClientLoginRequest>(bytes);
                var rsp    = CryptoServer.Singleton.ResponseLogin(request, "");
                var result = SerializerFactory <CommonSerializer> .Serializer(rsp);

                source.Rsponse(result);
            }
            else
            {
                byte[] bytes = new byte[req.Length - 1];
                Array.Copy(req, 1, bytes, 0, bytes.Length);
                //解析客户端数据
                //获取解密后的数据已经AES秘钥
                var creq = CryptoServer.Singleton.ProcessRequest(bytes);
                source.Message = creq.data;
                creq.data      = null;
                ProcessClient(source, creq);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <returns></returns>
        public byte[] LoginSrv()
        {
            ClientLoginRequest client = new ClientLoginRequest();

            client.ReqTime = DateTime.Now.Ticks;
            HashEncryptProvider hashEncrypt = new HashEncryptProvider();

            if (ClientSetting.IsFileauthorization)
            {
                client.Authorization = 1;
                FileStream fs = new FileStream(ClientSetting.AuthorizationFile, FileMode.Open);
                client.HashCode = Convert.ToBase64String(hashEncrypt.Encrypt(fs));
            }
            else
            {
                client.HashCode = hashEncrypt.Encrypt(CipherReply.RequestInfo);
            }
            //
            byte[] login = StructManager.StructToBytes(client);
            var    r     = StructManager.BytesToStruct <ClientLoginRequest>(login);

            //设置标致位
            byte[] req = new byte[login.Length + 1];
            req[0] = 1;
            Array.Copy(login, 0, req, 1, login.Length);
            return(req);
        }
Beispiel #3
0
    public override void _Ready()
    {
        //Getting Managers
        MapManager    = (MapManager)GetNode("MapManager");
        StructManager = (StructManager)GetNode("StructManager");

        //Initializing MapManager
        MapManager.Initialize();
        MapManager.LoadMap("default");

        //Initializing StructManager
        StructManager.Initialize();


        //
        GameSaveManager.CreateSave("test");
        GameSaveManager.LoadSave("test");
    }