服务端收发登录注冊流程

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)

原文地址:https://www.cnblogs.com/gcczhongduan/p/5257420.html