服务器网站绑定域名网站建设,淮南本地网,推广软件工具,免费的api接口网站逆向服务器用了三天的时间#xff0c;但此时觉得一切都值#xff0c;又可以继续学习了。
服务器中登录请求和注册请求由command变量进行区分#xff0c;上一层的type变量都是login。
public void process(Session session, SocketModel model)
{switch (model.Command){ca…逆向服务器用了三天的时间但此时觉得一切都值又可以继续学习了。
服务器中登录请求和注册请求由command变量进行区分上一层的type变量都是login。
public void process(Session session, SocketModel model)
{switch (model.Command){case 0:this.login(session, model);break;case 2:this.reg(session, model);break;}
}
从注册入手视频对应的应该是第七讲。
点击注册按钮输入账号密码实测可以在服务器收到编码后的字符串但此时有个问题就是只有点击登录按钮后客户端才会连接服务器上来直接点击“注册”再“确定”是收不到任何东西的。
现在这些都简单了新发现是vs可以自动分别打开两个不同的项目登录按钮绑定的函数如下。 然后发现LoginClick()和RegistClick()中基本大同小异说明建立连接的不是LoginClick()。而是因为“登录”按钮绑了CanvasCanvas中是有网络初始化脚本的。所以最简单的办法就是给登录界面右边的“注册”按钮也绑上Canvas。实测此时确实可以直接注册 然后最自然的想法就是看看账号密码存在哪里了加个位数限制16位之内防溢出至于字符限制暂时不用考虑。
public void reg(Session session, SocketModel model)
{Console.WriteLine(用户申请注册666);//MyLog.form.textAdd(用户申请注册);Console.WriteLine(model.Message);LoginDTO loginDto CodingLoginDTO.decode(model.Message);Console.WriteLine(与众不同loginDto.userName.Length loginDto.passWord.Length);if(loginDto.userName.Length17 loginDto.passWord.Length17){Console.WriteLine(BizUtil.account.create);bool v BizUtil.account.create(loginDto.userName, loginDto.passWord);session.write(0, 0, 3, (object)new BoolDTO(v));}
}
然后去看BizUtil.account.create()函数的代码vs会自动定位的。 有如下两类数据需要存储
namespace GameServer.src_biz
{internal class BizUtil{public static AccountBiz account new AccountBiz();public static UserBizImpl user new UserBizImpl();}
} 去看AccountBiz类(account是类中实例化的一个对象)中的create()函数的内容只要知道满足条件就去进TryAdd函数就可以了
public bool create(string userName, string password)
{if (this.accounts.ContainsKey(userName))return false;AccountModel accountModel new AccountModel(Guid.NewGuid().ToString(), userName, password);return this.accounts.TryAdd(userName, accountModel);
}
实际测试发现create函数的返回值是True和false可以做到1.判断账号是否重复。但2只要服务器重启之前的数据就全部作废了简而言之没有数据库功能