/// <summary> /// 处理登录返回信息 /// </summary> /// <param name="state"></param> private void ProcessLogin(StateObject state) { try { if (state.Package.ST == 0) { //asyncSocketServer.RemoveDisconnectedSession(state); _logManager.Info($"{MessageType.Login}{state.Machine.MachineCode} => 登录成功"); state.IsLogined = true; state.ResultBytes.Clear(); state.Package.CID = FuncCode.EnumAllData; Send(state); } else { //登录失败,关闭此次会话 _logManager.Info($"{MessageType.Login}{state.Machine.MachineCode} => 登录失败,关闭此次会话"); LoginResultPackage package = SocketHelper.BytesToStruct <LoginResultPackage>(state.ResultBytes.ToArray()); package.ERR = SocketHelper.NetworkToHost(package.ERR); package.RV = SocketHelper.NetworkToHost(package.RV); state.IsLogined = false; } } catch (SocketException e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } catch (Exception e) { _asyncSocketServer.CloseAndDisposeConnection(state, e, ErrorLevel.Level1); } }
/// <summary> /// 验证登录 /// </summary> /// <param name="obj"></param> static void HandleLoginPackage(NetworkStream stream, LoginPackage loginPackage) { var loginResultPackage = new LoginResultPackage(); //验证用帐号和密码,组织正确或错误报文并返回 if (users.Keys.Contains(loginPackage.Account) && users[loginPackage.Account] == loginPackage.Password) { loginResultPackage.Result = true; loginResultPackage.Frinds = userConnects.Keys.ToArray(); userConnects.Add(loginPackage.Account, stream); } else { loginResultPackage.Result = false; loginResultPackage.Message = "用户名或密码错误!"; } var formater = new BinaryFormatter(); formater.Serialize(stream, loginResultPackage); }