服务端收发登录注册流程

原创 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)

 

 

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

一张图看懂Android注册登录+服务端

整个环境是运行在Android虚拟机+tomcat服务器+MySQL上面的。。。需要对服务端以及Android都要比较熟悉。才能够比较完整的配置下来。。。 Android端相关代码: 1.注册登录...
  • zxb_zxb_
  • zxb_zxb_
  • 2015年03月19日 18:43
  • 3569

Android通过Http连接MySQL 实现登陆/注册(数据库+服务器+客户端),androidmysql

写在最前:   在实际开发中,相信每个项目都会有用户登陆注册功能,这个实现的方法很多,下面是我实现的方法,供大家交流。   新人发帖,万分紧张,怎么样才能装作一副经常发帖的样子不被别人看出来呢-,...
  • It_BeeCoder
  • It_BeeCoder
  • 2017年03月30日 11:47
  • 4947

网狐棋牌框架学习笔记(20160524、20160617、20160622、20160702)

20170523添加: Base64加密解密 http://tool.chinaz.com/Tools/Base64.aspx UTF8编码的Base64解密 MSSQL实现 https://...
  • u010401391
  • u010401391
  • 2016年06月25日 06:27
  • 7129

Android-用户登陆的例子(服务器端开发到客户端实现)

1.回顾        上篇实现总结了App接口开发课程讲解的内容 2.此篇      这篇将总结app接口开发里的 用户登录的例子! 3.基本步骤     (1)服务端实现...
  • LABLENET
  • LABLENET
  • 2015年08月15日 22:42
  • 13838

Android客户端与服务端交互之登陆示例

今天了解了一下android客户端与服务端是怎样交互的,发现其实跟web有点类似吧,然后网上找了大神的登陆示例,是基于IntentService的 1.后台使用简单的servlet,...
  • u011203602
  • u011203602
  • 2015年09月10日 10:17
  • 2375

【Android】移动端与服务器端简单的交互(账号密码登录) Android+PHP+MySQL

整体的流程是这样的:移动端获取到了数据,然后发送http请求和json格式数据吗,调用php文件,php解析json数据之后,根据数据对数据库进行不同的操作,操作完成之后返回相应,移动端获取响应内容即...
  • u010574567
  • u010574567
  • 2016年07月30日 23:50
  • 2084

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

UAC 脚本            REGISTER sip:[remote_ip] SIP/...
  • xiaoxiakea
  • xiaoxiakea
  • 2011年08月22日 10:33
  • 1445

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

客户端最近临近考试 还有好多科目需要预习 这个只能等到考试后再改一下了 现在这个程序问题很多 import java.io.BufferedReader; import java.io.Buffere...
  • baidu_38591365
  • baidu_38591365
  • 2017年07月03日 21:23
  • 293

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

自学php一个星期了,因为本身就是ios程序员,所有学起来相当比较轻松,来直接上php服务端的代码: ...
  • u012411532
  • u012411532
  • 2016年06月24日 16:35
  • 291

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

接着上一篇基础Android客户端服务端交互,这次按计划实现登录注册功能,下一篇就要实现加好友的功能了 本篇源码链接: http://download.csdn.net/detail/gywuhe...
  • gywuhengy
  • gywuhengy
  • 2017年06月19日 07:15
  • 218
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:服务端收发登录注册流程
举报原因:
原因补充:

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