服务端收发登录注册流程
2015-07-08 13:32
465 查看
客户端发包给服务分为主次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)
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)
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- C++ Custom Control控件向父窗体发送对应的消息
- C++中拷贝构造函数的应用详解
- C++去除输入行中空白的方法