zoukankan      html  css  js  c++  java
  • 服务端收发登录注冊流程

    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)

  • 相关阅读:
    vue router
    spring web 不定参数
    spring boot添加自定义配置文件
    IntelliJ IDEA查看方法的返回类型
    连接MySql报错->The server time zone value 'XXXXX' is unrecognized...............
    spring boot新建工程中使用mysql,com.mysql.jdbc.Driver标红
    iOS 并发编程之 Operation Queues
    数据安全基础知识总结
    登录令牌 Token 介绍
    常见加密算法
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5257420.html
Copyright © 2011-2022 走看看