Initial commit
This commit is contained in:
@@ -0,0 +1,444 @@
|
||||
#ifndef MessageDefH
|
||||
#define MessageDefH
|
||||
|
||||
#include "ProCommon.h"
|
||||
|
||||
//////////////////////////////////////////////
|
||||
#define PROTOCOL_VERSION 0x0D00
|
||||
// 0x0100 Request的iExtra包含ClientType和MsgVer
|
||||
// 0x0200 (2013.10.30) Verify MMParam2算法
|
||||
// 0x0300 (2013.11.13) 启用新TSTYLEUPDATE/TSTYLEDETAIL结构(传输优化)
|
||||
// 0x0400 (2014.02.19) QnACommit 增加版本号 dataSend返回e_ReceiveComplete
|
||||
// 0x0500 (2014.03.25) Payment MMParam2算法 修改版本号规则
|
||||
// 0x0600 (2014.06.23) 启用新TSTYLEUPDATE/TACCOUNTINFO/TPayRequest/TLogReq(Rsp)/TRegisterReq(Rsp)结构
|
||||
// 0x0700 (2014.07.18) 启用新TStyleUpdateReq/TStyleInfoResp/TLoginResp结构
|
||||
// 0x0800 (2015.01.26) 新TACCOUNTINFO/TLoginRequest/TLogoffRequest结构
|
||||
// 0x0900 (2015.05.28) VersionReq增加设备号
|
||||
// 0x0A00 (2015.12.17) 更新RegisterReq/LoginRes/CheckReq/Res/PayReq/Res结构及算法
|
||||
// 0x0B00 (2025.01.20) 更新RegisterReq结构,connectReq带版本号
|
||||
// 0x0C00 (2025.02.18) 增加 e_UserLocked/e_UserDeleted错误返回
|
||||
// ox0D00 (2025.11.30) NetMessage增加idDevice
|
||||
|
||||
#define LISTEN_PORT 12071
|
||||
|
||||
#define MAX_MSG_LENGTH 8192
|
||||
#define MAX_PACK_SIZE 1400
|
||||
#define MAX_STYLE_NUM 80
|
||||
#define MAX_QNA_NUM 80
|
||||
#define MAX_NOTICE_NUM 80
|
||||
|
||||
#define MSG_OPERATE_FAILED WM_USER + 0x105
|
||||
#define MSG_OPERATE_PERCENT WM_USER + 0x106
|
||||
#define MSG_OPERATE_COMPLETE WM_USER + 0x107
|
||||
#define MSG_NETWORKMESSAGE WM_USER + 0x130
|
||||
#define MSG_NETWORKERROR WM_USER + 0x131
|
||||
|
||||
#define URL_HOMEPAGE 0 //网站主页
|
||||
#define URL_USERCENTER 1 //用户中心页
|
||||
#define URL_SONGMANAGE 2 //歌曲管理页
|
||||
#define URL_SOFTWARE 3 //软件下载页
|
||||
#define URL_USERNOTICE 4 //用户消息页
|
||||
#define URL_TECHFORUM 5 //技术论坛
|
||||
#define URL_SHAREPLAY 6 //分享播放页
|
||||
#define URL_JASONQUERY 7 //JASON
|
||||
#define URL_RECHARGE 8 //充值页
|
||||
#define URL_VIPMEMBER 9 //VIP会员页
|
||||
#define URL_SONGPLAY 10 //歌曲播放页
|
||||
#define URL_COINSPEC 11 //唱作音符说明页
|
||||
#define URL_EXTFONT 12 //扩展音色库下载页
|
||||
#define URL_USERAGREEMENT 13 //用户协议页
|
||||
#define URL_REGCODE 14 //注册验证码接口
|
||||
#define URL_RESETPASS 15 //重置密码页
|
||||
|
||||
#pragma once
|
||||
|
||||
enum EMessageType{
|
||||
e_InvalidMessage,
|
||||
|
||||
e_versionRequest = 0x01,
|
||||
e_versionResponse,
|
||||
|
||||
e_connectRequest = 0x11,
|
||||
e_connectResponse,
|
||||
|
||||
e_loginRequest = 0x21,
|
||||
e_loginResponse,
|
||||
e_verifyRequest,
|
||||
e_verifyResponse,
|
||||
e_purchaseRequest,
|
||||
e_purchaseResponse,
|
||||
e_registerRequest,
|
||||
e_registerResponse,
|
||||
e_checkPaymentRequest,
|
||||
e_checkPaymentResponse,
|
||||
e_payRequest,
|
||||
e_payResponse,
|
||||
e_iconRequest,
|
||||
e_iconResponse,
|
||||
e_logoffRequest,
|
||||
e_logoffResponse,
|
||||
e_webURLRequest = 0x31,
|
||||
e_webURLResponse,
|
||||
|
||||
e_dataSendRequest = 0x41,
|
||||
e_dataSendResponse,
|
||||
e_dataReceiveRequest,
|
||||
e_dataReceiveResponse,
|
||||
|
||||
e_styleUpdateRequest = 0x61,
|
||||
e_styleUpdateResponse,
|
||||
e_styleInfoRequest,
|
||||
e_styleInfoResponse,
|
||||
e_styleDataRequest,
|
||||
e_styleDataResponse,
|
||||
e_styleCheckRequest,
|
||||
e_styleCheckResponse,
|
||||
e_styleRecomRequest,
|
||||
e_styleRecomResponse,
|
||||
e_styleScoreRequest,
|
||||
e_styleScoreResponse,
|
||||
|
||||
e_uploadStyleRequest = 0x81,
|
||||
e_uploadStyleResponse,
|
||||
e_uploadSongRequest,
|
||||
e_uploadSongResponse,
|
||||
|
||||
e_qnaUpdateRequest = 0x91,
|
||||
e_qnaUpdateResponse,
|
||||
e_qnaSubmitRequest,
|
||||
e_qnaSubmitResponse,
|
||||
e_noticeUpdateRequest,
|
||||
e_noticeUpdateResponse,
|
||||
|
||||
e_MessgeTypeEnd
|
||||
};
|
||||
|
||||
enum EExtraInfo{
|
||||
e_RequestSuccess,
|
||||
|
||||
e_UpdateNoNeed, //已是最新版本
|
||||
e_UpdateOptional, //版本可选更新
|
||||
e_UpdateMandatory, //版本强制更新
|
||||
|
||||
e_VerifyInsufficient, //账户余额不足
|
||||
e_ReceiveComplete, //数据接收完成
|
||||
|
||||
e_ShareStyle = 0x100, //分享风格信息
|
||||
e_CheckStyle = 0x101, //审核风格信息
|
||||
|
||||
e_RequestFailed = 0x8000,
|
||||
e_SocketError,
|
||||
e_WaitTimeout,
|
||||
e_DatabaseError,
|
||||
e_ParamError,
|
||||
e_LoginPasswordError,
|
||||
e_LoginUserNotExist,
|
||||
e_InvalidUserID,
|
||||
e_InvalidStyleID,
|
||||
|
||||
e_UserCanceled,
|
||||
e_NoService,
|
||||
e_ServiceBusy,
|
||||
|
||||
e_InvalidDataID,
|
||||
e_InvalidPackID,
|
||||
e_OutOfBound,
|
||||
e_InvalidData,
|
||||
e_InvalidAuthority, //无操作权限
|
||||
e_CheckedAlready, //风格已被审核
|
||||
|
||||
e_UsernameExist,
|
||||
e_OpenFileFailed,
|
||||
|
||||
e_NeedRepeat, //需重发消息
|
||||
|
||||
e_VipExceeded, //VIP用户设备数超限
|
||||
e_UserLocked, //账户被冻结
|
||||
e_UserDeleted, //账户已删除
|
||||
|
||||
e_ExtraEnd
|
||||
};
|
||||
|
||||
enum EUploadOperation{
|
||||
e_UO_Create,
|
||||
e_UO_Distribute,
|
||||
e_UO_Share,
|
||||
e_UO_END
|
||||
};
|
||||
|
||||
#pragma pack (2)
|
||||
|
||||
typedef struct tNetMessage{
|
||||
unsigned char idDevice[6]; //设备号,一般为mac地址
|
||||
unsigned short nSequenceNum; // 消息序列号,Request/Response匹配
|
||||
unsigned short eMessageType; // 消息类型
|
||||
unsigned short iExtra; // 额外信息
|
||||
unsigned short nLength; // 消息体的有效长度
|
||||
unsigned char byMessageBody[MAX_MSG_LENGTH]; // 消息体:消息参数部分
|
||||
|
||||
tNetMessage(){ memset( this, 0, sizeof(tNetMessage) ); };
|
||||
} TNETMESSAGE;
|
||||
|
||||
typedef struct {
|
||||
int iReq;
|
||||
} TIntRequest;
|
||||
|
||||
typedef struct {
|
||||
int iResp;
|
||||
} TIntResponse;
|
||||
|
||||
typedef struct {
|
||||
char sReq[256];
|
||||
} TStringRequest;
|
||||
|
||||
typedef struct {
|
||||
char sResp[256];
|
||||
} TStringResponse;
|
||||
|
||||
typedef struct {
|
||||
DWORD dwVersionMS;
|
||||
DWORD dwVersionLS;
|
||||
} TVersionRequest;
|
||||
|
||||
typedef struct {
|
||||
DWORD dwVersionMS; //最新版本号
|
||||
DWORD dwVersionLS;
|
||||
UINT tIssueDate;
|
||||
UINT nFileSize;
|
||||
UINT nDescribLen;
|
||||
char strDescrib[MAX_DESCRIB_LENGTH];
|
||||
} TVersionResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT iClientType;
|
||||
UINT idUser;
|
||||
UINT tUpdateDateOrigin;
|
||||
UINT tUpdateDateShare;
|
||||
} TStyleUpdateRequest;
|
||||
|
||||
typedef struct {
|
||||
WORD nOriginNum;
|
||||
WORD nShareNum;
|
||||
UINT tUpdateDateOrigin;
|
||||
UINT tUpdateDateShare;
|
||||
UINT idData;
|
||||
UINT nDataSize;
|
||||
} TStyleUpdateResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT nRecomNum;
|
||||
UINT aStyleIDs[MAX_STYLE_NUM];
|
||||
} TStyleRecomResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT iType;
|
||||
UINT idStyle;
|
||||
} TStyleInfoRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT nDataSize;
|
||||
} TStyleInfoResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT iType;
|
||||
UINT idStyle;
|
||||
} TStyleDataRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT nDataSize;
|
||||
} TStyleDataResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idUser;
|
||||
UINT idStyle;
|
||||
short iType;
|
||||
short scrUser;
|
||||
} TStyleScoreRequest;
|
||||
|
||||
typedef struct {
|
||||
short scrUser;
|
||||
short scrAverage;
|
||||
} TStyleScoreResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idChecker; //审核者ID
|
||||
UINT idStyle;
|
||||
WORD score; //0=未通过
|
||||
WORD lenMsg; //问题描述信息长度
|
||||
char strDescrib[MAX_DESCRIB_LENGTH];
|
||||
} TStyleCheckRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idStyle;
|
||||
} TStyleCheckResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT param;
|
||||
char strName[32];
|
||||
char strPassword[80];
|
||||
short isEmailOrMobile;
|
||||
} TRegisterRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT param;
|
||||
UINT idUser;
|
||||
char strNickname[32];
|
||||
} TRegisterResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT param;
|
||||
char strName[32];
|
||||
char strPassword[80];
|
||||
// char idDevice[6];
|
||||
} TLoginRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT param;
|
||||
char strNickname[32];
|
||||
char strIconFile[32];
|
||||
TACCOUNTINFO accountInfo;
|
||||
} TLoginResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idUser;
|
||||
// char idDevice[6];
|
||||
} TLogoffRequest;
|
||||
|
||||
typedef struct {
|
||||
char strIconFile[32];
|
||||
} TIconRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT nDataSize;
|
||||
} TIconResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idUser;
|
||||
UINT dwMMParam;
|
||||
WORD wOperation;
|
||||
WORD wStyleNum;
|
||||
UINT aIdStyles[MAX_STYLE_NUM];
|
||||
} TCheckPaymentRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT dwMMParam;
|
||||
int nUserBalance;
|
||||
int nPayment;
|
||||
int aStyleCost[MAX_STYLE_NUM];
|
||||
} TCheckPaymentResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idUser;
|
||||
// UINT dwMMParam;
|
||||
WORD wOperation;
|
||||
WORD wStyleNum;
|
||||
UINT aIdStyles[MAX_STYLE_NUM];
|
||||
} TPayRequest;
|
||||
|
||||
typedef struct {
|
||||
// UINT dwMMParam;
|
||||
int nUserBalance;
|
||||
} TPayResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT iType; //风格类型 1=批量上传 2=制作上传 3=分享上传
|
||||
UINT idUser;
|
||||
UINT nDataSize;
|
||||
} TUploadStyleRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idFile;
|
||||
} TUploadStyleResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT iClientType;
|
||||
UINT idUser;
|
||||
UINT nDataSize;
|
||||
} TUploadSongRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idFile;
|
||||
} TUploadSongResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT idPacket;
|
||||
UINT nPackSize;
|
||||
char arrPacket[MAX_PACK_SIZE];
|
||||
} TDataSendRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT idPacket;
|
||||
} TDataSendResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT idPacket;
|
||||
} TDataReceiveRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT idPacket;
|
||||
UINT nPackSize;
|
||||
char arrPacket[MAX_PACK_SIZE];
|
||||
} TDataReceiveResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT iClientType;
|
||||
UINT tLastUpdateDate;
|
||||
UINT idUser;
|
||||
UINT nQnANum;
|
||||
UINT aIdQnAs[MAX_QNA_NUM];
|
||||
} TQnAUpdateRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT tUpdateDate;
|
||||
UINT idData;
|
||||
UINT nDataSize;
|
||||
} TQnAUpdateResponse;
|
||||
|
||||
typedef struct {
|
||||
DWORD dwVersionMS;
|
||||
DWORD dwVersionLS;
|
||||
UINT idUser;
|
||||
char strQuestion[320];
|
||||
} TQnASubmitRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idQnA;
|
||||
} TQnASubmitResponse;
|
||||
|
||||
typedef struct {
|
||||
UINT idUser;
|
||||
UINT nNoticeNum;
|
||||
UINT aIdNotices[MAX_NOTICE_NUM];
|
||||
} TNoticeUpdateRequest;
|
||||
|
||||
typedef struct {
|
||||
UINT idData;
|
||||
UINT nDataSize;
|
||||
} TNoticeUpdateResponse;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
bool ValidNetMessage(unsigned char* buf, int len);
|
||||
bool ReadNetMessage( unsigned char* buf, short len, TNETMESSAGE* pMsg );
|
||||
bool WriteNetMessage( unsigned char* buf, short& len, TNETMESSAGE* pMsg );
|
||||
|
||||
int StyleDetail2Trans( TSTYLEDETAIL& detail, int &size, char *pData );
|
||||
int StyleTrans2Detail( TSTYLEDETAIL& detail, int sizeData, char *pData );
|
||||
int ShareInfo2Trans( TSTYLESHARE& detail, int &size, char *pData );
|
||||
bool ShareTrans2Info( TSTYLESHARE& info, int sizeData, char *pData );
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <string>
|
||||
using namespace std;
|
||||
int GBKToUTF8(const char *pcGBK, string & strUTF8);
|
||||
int UTF8ToGBK(const char *pcUTF8, string & strGBK);
|
||||
#endif
|
||||
|
||||
#endif //_MESSAGEDEF_H_
|
||||
Reference in New Issue
Block a user