服务端收发登录注册流程

原创 2015年07月08日 13:32:04

客户端发包给服务分为主次id

struct TCP_Command

{

     WORD          wMainCmdID;   //主命令码

     WORD          wSubCmdID;    //子命令码

};

一、      注册:

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

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、客户端发送:(帐号注册)CMD_GP_RegisterAccounts

struct CMD_GP_RegisterAccounts

{

     //系统信息

     DWORD              dwPlazaVersion;             //广场版本

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

 

     //密码变量

     TCHAR              szLogonPass[LEN_MD5];       //登录密码

 

     //注册信息

     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];//真实名字

     //密码变量

     TCHAR              szLogonPass[LEN_MD5];       //登录密码

     //附加信息

     DWORD              dwClientAddr;          //连接地址

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

     //连接信息

     LPVOID             pBindParameter;             //绑定参数

};

2.3、登录成功

DBO_GP_LOGON_SUCCESS        100           //登录成功

2.4、登录成功后开始构造客户端用户数据

//登录成功

struct DBO_GP_LogonSuccess

{

     //属性资料

     WORD          wFaceID;      //头像标识

     DWORD              dwUserID;      //用户标识

     DWORD              dwGameID;      //游戏标识

     DWORD              dwGroupID;         //社团标识

     DWORD              dwCustomID;        //自定索引

     DWORD              dwExperience;      //经验数值

     DWORD              dwLoveLiness;      //用户魅力

     TCHAR              szPassword[LEN_MD5];   //登录密码   

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

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

     TCHAR              szDynamicPass[LEN_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];     //动态密码

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

     //配置信息

     BYTE     cbInsureEnabled;       //银行使能标识

     BYTE           cbShowServerStatus;             //显示服务器状态

};

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];   //登录密码

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

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

};

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

//帐号登录

struct DBR_GP_LogonAccounts

{

     //登录信息

     TCHAR         szPassword[LEN_MD5];        //登录密码

     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)

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

网狐框架分析八--web登录游戏大厅流程 150629

--- #1.web客户端代码分析 web客户端传4个值,userID,passWord,IPAddr,IPPort,最后2个是连接服务器用的,userID和passWord是验证用户信息用的。 ...
  • chuanyu
  • chuanyu
  • 2015年06月30日 11:19
  • 1637

网狐框架分析八--web登录游戏大厅流程

--- #1.web客户端代码分析 web客户端传4个值,userID,passWord,IPAddr,IPPort,最后2个是连接服务器用的,userID和passWord是验证用户信息用的。 以下...

sipp 注册脚本测试服务端含(401)注册流程(UAC )

UAC 脚本            REGISTER sip:[remote_ip] SIP/...

新手学习-Tcp的服务端与客户端的登录注册系统

客户端最近临近考试 还有好多科目需要预习 这个只能等到考试后再改一下了 现在这个程序问题很多 import java.io.BufferedReader; import java.io.Buffere...

自学php,用php服务端和swift客户端实现验证登录和注册功能 1

自学php一个星期了,因为本身就是ios程序员,所有学起来相当比较轻松,来直接上php服务端的代码: ...

以Android端为客户端,servlet端为服务端的实时通讯——登录注册

接着上一篇基础Android客户端服务端交互,这次按计划实现登录注册功能,下一篇就要实现加好友的功能了 本篇源码链接: http://download.csdn.net/detail/gywuhe...

Json登录注册(服务端&android;端)

  • 2017年11月15日 16:20
  • 4.17MB
  • 下载

CAS 服务端登录验证流程(三)

接着上一次结束的地方 WEB-INF/login-webflow.xml

CAS 服务端登录验证流程(二)

前面已经展示了登录流程的初始化,接下来转到 第一个state(ticketGrantingTicketExistsCheck) ...

CAS 服务端登录验证流程(一)

CAS 首次登录流程 基于 cas-server v3.5.2 参考文章:http://blog.csdn.net/dovejing/article/details/44523545#comments...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:服务端收发登录注册流程
举报原因:
原因补充:

(最多只允许输入30个字)