服务端收发登录注冊流程

2023-11-19

client发包给服务分为主次id

struct TCP_Command

{

     WORD          wMainCmdID;   //主命令码

     WORD          wSubCmdID;    //子命令码

};

一、      注冊:

1、当在client输入游戏帐号或游戏昵称换行时,进行验证

CS:

1.1、发送的主id是:MDM_GP_LOGON      1    //广场登录

     子id是:SUB_GP_VERIFY_INDIVIDUAL   5    //验证资料

1.2、首先会进行版本号验证

struct CMD_GP_VerifyIndividual

{

     //系统信息

     DWORD              dwPlazaVersion;        //广场版本号

     //验证信息

     WORD          wVerifyMask;       //验证掩码

};

1.3、再进行

//验证资料

struct DBR_GP_VerifyIndividual

{

     //连接信息

     LPVOID             pBindParameter;                 //绑定參数

     WORD          wVerifyMask;                //校验验证

     TCHAR              szVerifyContent[LEN_ACCOUNTS];       //验证内容

};

1.4、再到数据库验证

DBR_GP_VERIFY_INDIVIDUAL    4                      //验证资料

1.5、验证后会有一个验证结果

DBO_GP_VERIFY_RESULT        104                    //验证结果

//验证结果

struct DBO_GP_VerifyIndividualResult

{

     bool          bVerifyPassage;                  //验证通过

     WORD          wVerifyMask;                //验证掩码

     TCHAR              szErrorMsg[128];            //错误消息

};  

SC:

1.6、SendData(dwContextID,MDM_GP_LOGON,SUB_GP_VERIFY_RESULT,&VerifyIndividualResult,wSendSize);

MDM_GP_LOGON           1             //广场登录

SUB_GP_VERIFY_RESULT        105           //验证结果

2、client发送:(帐号注冊)CMD_GP_RegisterAccounts

struct CMD_GP_RegisterAccounts

{

     //系统信息

     DWORD              dwPlazaVersion;             //广场版本号

     TCHAR              szMachineID[LEN_MACHINE_ID];     //机器序列

 

     //password变量

     TCHAR              szLogonPass[LEN_MD5];       //登录password

 

     //注冊信息

     WORD          wFaceID;           //头像标识

     BYTE          cbGender;          //用户性别

     TCHAR              szAccounts[LEN_ACCOUNTS];   //登录帐号

     TCHAR              szNickName[LEN_NICKNAME];   //用户昵称

     TCHAR              szSpreader[LEN_ACCOUNTS];   //推荐帐号

     TCHAR              szPassPortID[LEN_PASS_PORT_ID];  //证件号码

     TCHAR              szCompellation[LEN_COMPELLATION];//真实名字

     BYTE          cbValidateFlags;       //校验标识

};

CS:

2.1、发送的主id是:MDM_GP_LOGON      1    //广场登录

     子id是:SUB_GP_REGISTER_ACCOUNTS   3    //注冊帐号

2.2、注冊帐号

DBR_GP_REGISTER_ACCOUNTS  3    //注冊帐号

//帐号注冊

struct DBR_GP_RegisterAccounts(该结构体用来转存注冊消息写入数据库)

{

     //注冊信息

     WORD          wFaceID;           //头像标识

     BYTE          cbGender;          //用户性别

     TCHAR              szAccounts[LEN_ACCOUNTS];   //登录帐号

     TCHAR              szNickName[LEN_ACCOUNTS];   //用户昵称

     TCHAR              szSpreader[LEN_ACCOUNTS];   //推荐帐号

     TCHAR              szPassPortID[LEN_PASS_PORT_ID];  //证件号码

     TCHAR              szCompellation[LEN_COMPELLATION];//真实名字

     //password变量

     TCHAR              szLogonPass[LEN_MD5];       //登录password

     //附加信息

     DWORD              dwClientAddr;          //连接地址

     TCHAR              szMachineID[LEN_MACHINE_ID];     //机器序列

     //连接信息

     LPVOID             pBindParameter;             //绑定參数

};

2.3、登录成功

DBO_GP_LOGON_SUCCESS        100           //登录成功

2.4、登录成功后開始构造client用户数据

//登录成功

struct DBO_GP_LogonSuccess

{

     //属性资料

     WORD          wFaceID;      //头像标识

     DWORD              dwUserID;      //用户标识

     DWORD              dwGameID;      //游戏标识

     DWORD              dwGroupID;         //社团标识

     DWORD              dwCustomID;        //自定索引

     DWORD              dwExperience;      //经验数值

     DWORD              dwLoveLiness;      //用户魅力

     TCHAR              szPassword[LEN_MD5];   //登录password   

     TCHAR              szAccounts[LEN_ACCOUNTS];//登录帐号

     TCHAR              szNickName[LEN_NICKNAME];//用户昵称

     TCHAR              szDynamicPass[LEN_PASSWORD];//动态password

     TCHAR              szGroupName[LEN_GROUP_NAME];//社团名字

 

     //用户成绩

     SCORE              lUserScore;        //用户游戏

     SCORE              lUserIngot;        //用户元宝

     SCORE              lUserInsure;       //用户银行   

     DOUBLE             dUserBeans;        //用户游戏

 

     //用户资料

     BYTE          cbGender;     //用户性别

     BYTE          cbMoorMachine;         //锁定机器

     TCHAR              szUnderWrite[LEN_UNDER_WRITE];   //个性签名

 

     //会员资料

     BYTE          cbMemberOrder;         //会员等级

     SYSTEMTIME         MemberOverDate;        //到期时间

 

     //扩展信息

     BYTE          cbInsureEnabled;   //使能标识

     DWORD              dwCheckUserRight;  //检查权限

 

     //报名信息

     WORD          wSignupCount;      //报名数量

     tagSignupMatchInfo SignupMatchInfo[32];   //报名列表

 

     //描写叙述信息

     TCHAR              szDescribeString[128]; //描写叙述消息

};

2.5、

//登录成功

struct CMD_GP_LogonSuccess

{

     //属性资料

     WORD     wFaceID;           //头像标识

     DWORD         dwUserID;          //用户 I D

     DWORD         dwGameID;          //游戏 I D

     DWORD         dwGroupID;              //社团标识

     DWORD         dwCustomID;            //自定标识   

     DWORD         dwExperience;          //经验数值

     DWORD         dwLoveLiness;          //用户魅力

 

     //用户成绩

     SCORE         lUserScore;            //用户金币

     SCORE         lUserInsure;           //用户银行

     SCORE         lUserIngot;            //用户元宝

     DOUBLE        dUserBeans;            //用户游戏豆

 

     //用户信息

     BYTE     cbGender;          //用户性别

     BYTE     cbMoorMachine;              //锁定机器

     TCHAR         szAccounts[LEN_ACCOUNTS];   //登录帐号

     TCHAR         szNickName[LEN_ACCOUNTS];   //用户昵称

     TCHAR         szDynamicPass[LEN_PASSWORD];     //动态password

     TCHAR         szGroupName[LEN_GROUP_NAME];     //社团名字

     //配置信息

     BYTE     cbInsureEnabled;       //银行使能标识

     BYTE           cbShowServerStatus;             //显示server状态

};

SC:

2.5、

SendData(dwContextID,MDM_GP_LOGON,SUB_GP_LOGON_SUCCESS,cbDataBuffer,wSendSize);

MDM_GP_LOGON       1        //广场登录

SUB_GP_LOGON_SUCCESS   100      //登录成功

2.6、

m_pITCPNetworkEngine->SendData(dwContextID,MDM_GP_SERVER_LIST,SUB_GP_LIST_FINISH);

MDM_GP_SERVER_LIST 2        //列表信息

SUB_GP_LIST_FINISH 200      //发送完毕

2.7、//登陆完毕

struct CMD_GP_LogonFinish

{

     WORD          wIntermitTime;              //中断时间

     WORD          wOnLineCountTime;      //更新时间

};

m_pITCPNetworkEngine>SendData(dwContextID,MDM_GP_LOGON,SUB_GP_LOGON_FINISH,&LogonFinish,sizeof(LogonFinish));

MDM_GP_LOGON       1        //广场登录

SUB_GP_LOGON_FINISH    102      //登录完毕

3、游戏登录

CS:

3.1、发送的主id是:MDM_GP_LOGON      1    //广场登录

           子id:  SUB_GP_LOGON_ACCOUNTS  2    //帐号登录

3.2、帐号登录

           DBR_GP_LOGON_ACCOUNTS       2    //帐号登录

//帐号登录

struct CMD_GP_LogonAccounts

{

     //系统信息

     DWORD              dwPlazaVersion;        //广场版本号

     TCHAR              szMachineID[LEN_MACHINE_ID];         //机器序列

 

     //登录信息

     BYTE          cbValidateFlags;   //校验标识

     TCHAR              szPassword[LEN_MD5];   //登录password

     TCHAR              szAccounts[LEN_ACCOUNTS]; //登录帐号

     TCHAR              szPassPortID[LEN_PASS_PORT_ID];      //身份证号

};

3.3、将发来的包构造为该结构体与数据库进行验证

//帐号登录

struct DBR_GP_LogonAccounts

{

     //登录信息

     TCHAR         szPassword[LEN_MD5];        //登录password

     TCHAR         szAccounts[LEN_ACCOUNTS];   //登录帐号

     TCHAR         szPassPortID[LEN_PASS_PORT_ID];  //身份证号

     BYTE     cbNeeValidateMBCard;        //密保校验

 

     //附加信息

     DWORD         dwClientAddr;          //连接地址

     TCHAR         szMachineID[LEN_MACHINE_ID];     //机器序列

 

     //连接信息

     LPVOID        pBindParameter;             //绑定參数

     //扩展信息

     DWORD         dwCheckUserRight;      //检查权限

};

3.4、验证结果-》登录失败

//登录失败

struct DBO_GP_LogonFailure

{

     LONG     lResultCode;           //错误代码

     TCHAR         szDescribeString[128];      //描写叙述消息

};

3.5、

DBO_GP_LOGON_FAILURE        101           //登录失败

DBO_MB_LOGON_FAILURE        901           //登录失败

3.6、

//登录失败

struct CMD_GP_LogonFailure

{

     LONG          lResultCode;       //错误代码

     TCHAR              szDescribeString[128]; //描写叙述消息

};

SC:

3.7、发送失败数据

SendData(dwContextID,MDM_GP_LOGON,SUB_GP_LOGON_FAILURE,&LogonFailure,wSendSize);

MDM_GP_LOGON         1        //广场登录

SUB_GP_LOGON_FAILURE 101       //登录失败

3.8、验证结果=》登录成功(同注冊2.3-2.7)

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务端收发登录注冊流程 的相关文章

  • JQuery使用

    JQuery 框架 注意事项 在导入JQUREY外部文件的时候不可以使用自闭合标签 无效化导入且不报错 不可使用此方式加载 jQuery框架特点 免费开源 轻量级框架 占用资源少 运行速度快 宗旨 write less do more jQ

随机推荐

  • python下载安装教程(Python 3.10版本)

    目录 一 Python下载 二 Python安装 三 检查Python是否安装成功 今天换了新的电脑 需要重新安装python和PyCharm 就简单的写个教程吧 一 Python下载 1 进入Python官网 官网地址 https www
  • 使用http携带token请求第三方接口 并封装参数以post方式请求

    首先准备条件 1 四个jar包 fastjson 1 2 3 jar commons io 2 4 jar commons httpclient 3 1 jar httpcore 4 3 jar slf4j api 1 7 7 jar 这个
  • 范围for语句

    C 新标准提供的范围for语句 这种语句遍历给定序列中个元素并对序列中每一个值执行某种操作 其语法形式是 for declaration expression statement 其中 expression 部分是一个对象 用于表示一个序列
  • tp5 生成随机数

    控制器调用 public function GetRanStr if request gt isPost 生成6位数随机数 return GetRandStr 6 公共方法 生成随机数 param len return string fun
  • 常用与业务密切相关的prompt

    可以在 Bard Bing Claude 2 ChatGPT和 Llama 2 上使用 定义您的业务目的和愿景 提示 我正在 插入行业 创业 我的重点是定义与我的受众产生共鸣的明确目标和愿景 你能指导我制定有意义的愿景声明吗 研究和分析您的
  • android通过JNI用C/C++创建本地文件

    通过jni在本地创建文件 1 在android studio创建基本的jni工程 并且在APP界面成功显示 Hello from C 不会的可以看android studio使用jni 2 在native lib cpp文件中创建文件 为了
  • eclipse导入项目后,项目报红叉的解决方法

    导入项目后 项目报红叉的解决方法 导入别人的项目后 一般都会报错 我之前尝试build path 发现并没有问题 后来发现 点击项目右键 properties 把服务加上Apply and Close就可以了
  • Spring(三):JavaBean的生命周期

    JavaBean的生命周期 一 基本概念 bean 就是由IOC 容器初始化 装配及管理的对象 Spring中的bean默认都是单例的 那么单例Bean在多线程程序下如何保证线程安全呢 Spring的单例是基于BeanFactory也就是S
  • 音视频学习笔记(雷神)—技术解析

    音视频技术解析 封装技术 视频压缩编解码 音频压缩编解码 这是技术层 流媒体传输协议 这是网络层 视频播放器解析 解协议 从视频播放器的角度做解析 拿到传输而来的视频数据后 首先要解协议 传输协议 自然的本地视频经过硬盘传输数据自然没有解协
  • 关于UI适配的文档

    第一部分 原理 1 根据当前屏幕尺寸与开发预设屏幕尺寸尺寸得出以下参数 1 XRatio 当前屏幕尺寸与开发尺寸的X轴比例 2 YRtaio 当前屏幕尺寸与开发尺寸的Y轴比例 3minRatio XRatio与YRtaio中的较小值 2 之
  • 求1到n的所有质数(素数)

    1 一般方法 定义一个空列表 双层循环实现 时间复杂高计算慢 时间复杂度为 O n 2 mathrm O left mathrm n 2
  • 《这些话好帅,经典得让人心痛!》

    http bookmark hexun com shuhe2008 detail aspx bid 6306685 type rss 1 对自己好点 因为一辈子不长 对身边的人好点 因为下辈子不一定能够遇见 2 对不起是一种真诚 没关系是一
  • 线性回归和逻辑回归的区别_【基础】线性回归和逻辑回归

    回归和分类 回归和分类是机器学习可以解决两大主要问题 从预测值的类型上来区分 连续变量的预测称为回归 离散变量的预测称为分类 例如 预测房价的价格是一个回归任务 预测一张图片是猫还是狗的图片是分类任务 线性回归 在一维特征空间 线性回归是通
  • C基础day8(2023.7.10)

    一 Xmind整理 二 课上练习 练习1 基本类型参数 include
  • Ubuntu/Win10双系统安全删除Ubuntu的方法

    为什么要删除Ubuntu 现在 许多筒子喜欢在电脑上安装双系统 Windows Linux Linux系统中最受个人用户用户青睐的当属Ubuntu了 我们常常在Ubuntu上写程序 调代码 做开发 然而 有些时候我们因为各种各样的原因 不得
  • vscode插件开发踩坑

    vscode插件开发踩坑 q npm总是提示连接错误并且切换源也没用 a 卸载重装 卸载干净 usr 下的lib和bin有关node moudle的全删掉 q npm使用sudo时提示错误 a 首先npm不能和sudo一起用 然后因为npm
  • iOS 17 Simulator Failed with HTTP status 400:bad request

    升级 xcode 15 要 ios17 的 sdk 才能运行 但是更新这个 sdk 400 错误了 解决方案 直接去官网下载开发者后台下载dmg文件 使用命令行快速安装即可 https developer apple com documen
  • OCaml简介

    OCaml简介 函数式编程 产生于 优点 ref https zhuanlan zhihu com p 591818090 函数式编程 传统的编程语言 是面向过程 面向对象的 产生于 20世纪80 90年代 产生于法国巴黎高等师范学院 起源
  • 如何在Unity中使用AR Foundation和ARCore创建一个项目并编译到Android 11手机设备中

    最近又开始学如何使用Unity进行AR开发 因为Unity开发的AR Foundation在各种设备 例如Android iOS HoloLens 的原生AR SDK 例如ARCore ARKit Windows 10 SDK 上进行了封装
  • 服务端收发登录注冊流程

    client发包给服务分为主次id struct TCP Command WORD wMainCmdID 主命令码 WORD wSubCmdID 子命令码 一 注冊 1 当在client输入游戏帐号或游戏昵称换行时 进行验证 CS 1 1