Example #1
0
 /// <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);
     }
 }
Example #2
0
        /// <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);
        }