/// <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); } }
/// <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); }
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"); }