



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、血與榮譽(yù)網(wǎng)絡(luò)通信引擎 協(xié)議文檔 by:QYTXEngine網(wǎng)絡(luò)通信引擎協(xié)議文檔目錄血與榮譽(yù)網(wǎng)絡(luò)通信引擎協(xié)議文檔1前言5閱讀者5概述5協(xié)議定義5相關(guān)模塊5一 協(xié)議規(guī)范51.1 協(xié)議頭說(shuō)明61.2 協(xié)議頭格式61.2.1 普通協(xié)議頭61.2.2 擴(kuò)展協(xié)議頭61.3 協(xié)議頭字段71.3.1 普通協(xié)議頭字段71.3.2 擴(kuò)展協(xié)議頭字段71.4 協(xié)議頭表示81.5 協(xié)議展示81.5.1 普通協(xié)議81.5.2 擴(kuò)展協(xié)議8二 使用協(xié)議92.1 主協(xié)議92.2 子協(xié)議92.3 協(xié)議分類(lèi)10三 系統(tǒng)協(xié)議103.1 日志協(xié)議103.2 驗(yàn)證協(xié)議113.2.1 刪除協(xié)議113.2.2 注冊(cè)協(xié)議123.2.3 登錄協(xié)
2、議133.2.4 充值協(xié)議143.2.5 找回密碼153.2.6 獲取時(shí)間163.2.7 網(wǎng)絡(luò)驗(yàn)證183.2.8 公告協(xié)議183.2.9 超時(shí)通知193.3 流媒體協(xié)議193.3.1 推送協(xié)議193.3.2 拉流協(xié)議213.3.3 控制協(xié)議233.3.4 通知協(xié)議243.4 存儲(chǔ)服務(wù)協(xié)議243.4.1 文件傳輸協(xié)議243.4.2 上傳文件協(xié)議253.4.3 查詢文件協(xié)議263.4.4 刪除文件協(xié)議273.4.5 下載文件協(xié)議283.4.10 文件夾查詢協(xié)議303.4.11 文件夾創(chuàng)建協(xié)議313.4.12 文件夾刪除協(xié)議323.4.13 用戶信息查詢333.5 后臺(tái)服務(wù)協(xié)議343.5.1 協(xié)議處
3、理343.5.2 后臺(tái)管理協(xié)議343.6 P2XP協(xié)議363.6.1 登錄協(xié)議373.6.2 內(nèi)網(wǎng)地址同步383.6.3 外網(wǎng)地址同步393.6.4 用戶查詢413.6.5 請(qǐng)求連接423.7 消息隊(duì)列433.7.1 投遞包協(xié)議443.7.2 獲取包協(xié)議453.7.3 刪除包協(xié)議463.8 消息分發(fā)473.8.1 請(qǐng)求應(yīng)答協(xié)議473.8.2 通知協(xié)議493.9 UDX協(xié)議503.9.1 數(shù)據(jù)傳輸協(xié)議513.9.2 登錄協(xié)議513.9.3 數(shù)據(jù)重傳523.9.4 通知協(xié)議533.10 XRPC協(xié)議543.10.1 函數(shù)調(diào)用543.10.2 命令調(diào)用573.11 心跳服務(wù)573.11.1 心跳同步
4、573.12 分包協(xié)議583.12.1 分包開(kāi)始583.12.2 分包結(jié)束593.13 離開(kāi)協(xié)議59四 用戶協(xié)議604.1 用戶協(xié)議規(guī)范60五 特別說(shuō)明605.1 協(xié)議頭605.1.1 加密類(lèi)型605.1.2 負(fù)載類(lèi)型605.2 權(quán)限級(jí)別61附錄61附錄1 類(lèi)型定義61附錄2 協(xié)議定義61附錄3 轉(zhuǎn)換定義61附錄4 更新歷史61文件狀態(tài): 草稿 正式發(fā)布文件名稱(chēng):XEngine網(wǎng)絡(luò)通信引擎協(xié)議文檔適用版本:V6.29發(fā)布日期:2021-02-17擬 制: qyt前言閱讀者 開(kāi)發(fā)人員,測(cè)試人員,產(chǎn)品經(jīng)理,QA 閱讀此篇文檔之前,你應(yīng)該首先閱讀SDK開(kāi)發(fā)文檔(Readme)概述 此文檔包含血與榮譽(yù)
5、網(wǎng)絡(luò)通信引擎現(xiàn)有協(xié)議解釋說(shuō)明.用戶在開(kāi)發(fā)基于血與榮譽(yù)網(wǎng)絡(luò)通信引擎(XEngine)SDK的時(shí)候可以參考這個(gè)文檔使用我們的網(wǎng)絡(luò)通信協(xié)議!協(xié)議定義協(xié)議頭定義文件都在我們提供的SDK頭文件的主目錄下,文件名為:XyRyNet_Protocol.h文件.相關(guān)模塊 使用我們的協(xié)議,我們已經(jīng)提供了一個(gè)模塊供大家使用,這個(gè)模塊在幫助組件下,名字為HelpComponents_Packets.此模塊可以快速幫助用戶完成一個(gè)協(xié)議的解析和組裝.一 協(xié)議規(guī)范在所有網(wǎng)絡(luò)通信過(guò)程中,我們的服務(wù)都有一個(gè)自己的包頭,采用的協(xié)議格式是包頭+包體(STRUCT OR JSON)數(shù)據(jù)格式來(lái)通信.以下0x 開(kāi)頭都代表16進(jìn)程,當(dāng)然
6、,你可以轉(zhuǎn)換成10進(jìn)程發(fā)送,道理是一樣的.部分協(xié)議說(shuō)明可能沒(méi)有表示出所有協(xié)議字段,這種情況下不代表可以不填寫(xiě)或者不帶其他協(xié)議頭的字段.無(wú)論什么情況下,協(xié)議頭必須帶上,并且他的開(kāi)始和結(jié)束標(biāo)志必須填充.其他值你可以根據(jù)需要填寫(xiě).對(duì)齊方式:所有協(xié)議按照1個(gè)字節(jié)內(nèi)存對(duì)其字節(jié)序:協(xié)議頭按照小端模式發(fā)送,無(wú)需網(wǎng)絡(luò)字節(jié)序,如果你有特殊需求,那么你需要自己封裝協(xié)議頭,否則我們的協(xié)議頭封裝函數(shù)都不會(huì)轉(zhuǎn)字節(jié)序.1.1 協(xié)議頭說(shuō)明1.2 協(xié)議頭格式我們提供的協(xié)議頭有兩種,一個(gè)是普通的協(xié)議頭,用于對(duì)于安全與網(wǎng)絡(luò)通信要求不高的情況,另外一種是擴(kuò)展協(xié)議頭,里面包含了很多詳細(xì)的協(xié)議字段,用于對(duì)網(wǎng)絡(luò)通信要求高的環(huán)境.我們下面
7、演示的協(xié)議頭是通過(guò)C/C+方式來(lái)觀看的,如果你的開(kāi)發(fā)語(yǔ)言是其他語(yǔ)言,那么只需要按照大小填充內(nèi)容即可注意:普通協(xié)議和擴(kuò)展協(xié)議頭無(wú)法一起使用!1.2.1 普通協(xié)議頭 普通協(xié)議頭,固定30個(gè)字節(jié),一般情況下只適用于TCPtypedef struct tag_NetEngine_ProtocolHdr WORD wHeader; /協(xié)議頭頭部 固定的賦值 XNETHANDLE xhToken; /唯一標(biāo)識(shí)符 UINT unOperatorType; /操作類(lèi)型 UINT unOperatorCode; /操作碼 UINT unPacketSize; /數(shù)據(jù)包大小,后續(xù)包的大小BYTE byVersio
8、n; /協(xié)議版本BYTE byIsReply; /是否需要回復(fù)包 0 否,1是WORD wReserve; /自定義數(shù)據(jù)位或者保留WORD wPacketSerial; /包序列號(hào) WORD wTail; /協(xié)議頭尾部 固定的賦值NETENGINE_PROTOCOLHDR,*LPNETENGINE_PROTOCOLHDR;1.2.2 擴(kuò)展協(xié)議頭 擴(kuò)展協(xié)議頭,擴(kuò)展協(xié)議頭適用于TCP,UDP,擴(kuò)展字段功能更完善,更適用于對(duì)通信要求嚴(yán)格的服務(wù).請(qǐng)注意字段的占位標(biāo)識(shí)符.typedef struct tag_NetEngine_ProtocolHdrExWORD wHeader : 8; /協(xié)議頭頭部
9、固定的賦值WORD wVersion : 4; /協(xié)議頭版本號(hào)標(biāo)志W(wǎng)ORD wPayload : 4; /后續(xù)數(shù)據(jù)包負(fù)載類(lèi)型XNETHANDLE xhToken; /唯一標(biāo)識(shí)符XNETHANDLE xhXTPTime; /時(shí)間戳UINT unOperatorType : 16; /操作類(lèi)型UINT unOperatorCode : 16; /操作碼UINT unPacketCrypt : 1; /加密標(biāo)志,0沒(méi)有加密,其他值表示加密UINT unPacketCount : 7; /0不分包,> 0 分包個(gè)數(shù)UINT unPacketSerial : 8; /包序列號(hào),只有分包的時(shí)候這個(gè)值
10、才有效,其他時(shí)候請(qǐng)?zhí)畛?UINT unPacketSize : 16; /數(shù)據(jù)包大小,后續(xù)包的大小,不包括協(xié)議頭和協(xié)議尾WORD wReserve : 8; /自定義數(shù)據(jù)位或者保留WORD wIsReply : 8; /是否需要回復(fù)包 0 否,1是NETENGINE_PROTOCOLHDREX, *LPNETENGINE_PROTOCOLHDREX; 擴(kuò)展協(xié)議頭需要協(xié)議尾,協(xié)議的尾部需要加到數(shù)據(jù)的末尾一起發(fā)送.格式是:協(xié)議頭+數(shù)據(jù)+協(xié)議尾typedef struct tag_NetEngine_ProtocolTailExWORD wCheckSum : 8; /數(shù)據(jù)校驗(yàn)碼,數(shù)據(jù)區(qū)校驗(yàn)WORD
11、 wTail : 8; /協(xié)議頭尾部 固定的賦值NETENGINE_PROTOCOLTAILEX, *LPNETENGINE_PROTOCOLTAILEX;1.3 協(xié)議頭字段1.3.1 普通協(xié)議頭字段l wHeader:協(xié)議頭的包頭字段,兩個(gè)字節(jié)(unsigned short類(lèi)型),采用固定填充N(xiāo)ETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER(0x11)l xhToken:8個(gè)字節(jié)(unsigned long long),一般創(chuàng)建流或者文件傳輸?shù)臅r(shí)候用到l unOperatorType:操作類(lèi)型,4個(gè)字節(jié)(unsigned int),代表協(xié)議頭的類(lèi)型
12、l unOperatorCode:操作碼,4個(gè)字節(jié),代表協(xié)議頭類(lèi)型的操作碼.l unPacketSize:后續(xù)包長(zhǎng)度,4個(gè)字節(jié),不包括此包頭.用于組包l byVersion:協(xié)議版本,(unsigned char 類(lèi)型)1個(gè)字節(jié),1為后續(xù)包為結(jié)構(gòu)體,2為后續(xù)包為JSON,3為其他,除了特別說(shuō)明的地方以外,默認(rèn)只支持版本1l byIsReply:是否需要回復(fù)包,(unsigned char類(lèi)型)1個(gè)字節(jié),除非下面協(xié)議說(shuō)明寫(xiě)了支持回復(fù)包設(shè)置,否則將為FALSE l wReserve:保留字段,(unsigned short類(lèi)型)兩個(gè)字節(jié),用戶可自行使用.l wPacketSerial:包序列號(hào),(
13、unsigned short類(lèi)型)兩個(gè)字節(jié),可為0,暫時(shí)不起作用l wTail:協(xié)議頭的包尾,(unsigned short類(lèi)型)兩個(gè)字節(jié),采用固定值NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL(0xff)1.3.2 擴(kuò)展協(xié)議頭字段l unPacketCrypt:占用1位,表示是否使用了加密,0表示數(shù)據(jù)包沒(méi)有加密>0表示中間的數(shù)據(jù)包是經(jīng)過(guò)加密的,1-9由用戶指定加密協(xié)議類(lèi)型l unPacketCount:占用7位.分包標(biāo)志,0不分包,大于0,需要分包,分包個(gè)數(shù)最大為127個(gè).l wCheckSum:占用一個(gè)字節(jié),校驗(yàn)和,用于計(jì)算數(shù)據(jù)載體的校驗(yàn).
14、可以單獨(dú)調(diào)用函數(shù)進(jìn)行計(jì)算l wPayload:后續(xù)數(shù)據(jù)負(fù)載類(lèi)型l xhXTPTime:XEngine Time Protocol,是由64位整數(shù)組成,高32位為當(dāng)前UTC -TIME數(shù)值,低32位為微秒數(shù)值1.4 協(xié)議頭表示協(xié)議頭里面包括后面的結(jié)構(gòu)體字段,都可以通過(guò)你指定的大小來(lái)設(shè)置,不一定要用此方式或者此類(lèi)型,在計(jì)算機(jī)里面只要他的取值返回和內(nèi)存大小相同,都可以通用的.1.5 協(xié)議展示這里展示了一個(gè)協(xié)議在數(shù)據(jù)內(nèi)存中表示的情況,開(kāi)發(fā)者可以根據(jù)這條展示信息只管的了解到我們的協(xié)議使用的方式.下面展示的協(xié)議包含了普通協(xié)議和擴(kuò)展協(xié)議,它適用于所有協(xié)議類(lèi)型.以下展示結(jié)果為主機(jī)字節(jié)序,也就是小端模式,以后不
15、在說(shuō)明.1.5.1 普通協(xié)議30字節(jié)頭+數(shù)據(jù)(如果沒(méi)有數(shù)據(jù),那么只有30字節(jié)頭)不帶數(shù)據(jù)的心跳包數(shù)據(jù)展示,回復(fù)請(qǐng)求設(shè)置為0,后續(xù)數(shù)據(jù)類(lèi)型設(shè)置為00x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x00 0x01 0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x00帶數(shù)據(jù)的網(wǎng)絡(luò)驗(yàn)證協(xié)議登錄數(shù)據(jù)展示,回復(fù)請(qǐng)求設(shè)置為1,后續(xù)數(shù)據(jù)類(lèi)型設(shè)置為10x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x0
16、0 0x00 0x02 0x00 0x00 0x00 0x05 0x20 0x00 0x00 0x40 0x01 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x00 0xFF 0x00 DATA(0x00 .)1.5.2 擴(kuò)展協(xié)議28字節(jié)協(xié)議頭+數(shù)據(jù)+兩個(gè)字節(jié)協(xié)議尾不帶數(shù)據(jù)心跳包展示,協(xié)議版本號(hào)設(shè)置為1,回復(fù)請(qǐng)求設(shè)置為0,后續(xù)數(shù)據(jù)類(lèi)型設(shè)置為00x11 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x0A 0x00 0x01 0x0A 0x00
17、 0x00 0x00 0x00 0x00 0x00 DATA(0x00.) 0x00 0xFF帶數(shù)據(jù)包的網(wǎng)絡(luò)驗(yàn)證協(xié)議,協(xié)議尾的CHECKSUM被設(shè)置有值,回復(fù)請(qǐng)求設(shè)置為真0x11 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x05 0x20 0x00 0x00 0x40 0x01 0x00 0x01 DATA(0x00.) 0x7E 0xFF二 使用協(xié)議2.1 主協(xié)議我們提供的協(xié)議分了類(lèi),一個(gè)主類(lèi),在協(xié)議頭里面的unOperatorType表示,這
18、個(gè)值表示一個(gè)主要的大類(lèi)協(xié)議,還有子協(xié)議用于區(qū)別.主協(xié)議里面的協(xié)議為系統(tǒng)默認(rèn)協(xié)議,用戶的自定義協(xié)議不應(yīng)該與系統(tǒng)內(nèi)部定義的協(xié)議相同.下面演示了主協(xié)議類(lèi)型typedef enum en_NetEngine_XComm_ProtocolENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_NORMAL = 0, /普通協(xié)議ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_XLOG = 1, /網(wǎng)絡(luò)日志協(xié)議ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTH = 2, /網(wǎng)絡(luò)驗(yàn)證服務(wù)協(xié)議ENUM_ENGINE_C
19、OMMUNICATION_PROTOCOL_TYPE_SMS = 3, /流媒體協(xié)議ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_FILE = 4, /文件傳輸協(xié)議ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_BACKSERVICE = 5, /后臺(tái)服務(wù)協(xié)議ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_P2XP = 6, /P2XP協(xié)議ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_XMQ = 7, /消息隊(duì)列服務(wù)ENUM_ENGINE_COMMUNICATIO
20、N_PROTOCOL_TYPE_XDDS = 8, /消息分發(fā)服務(wù)ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_HEARTBEAT = 0xA, /心跳協(xié)議ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_CHUNKED = 0xB, /CHUNKED包模式,使用此模式協(xié)議頭的unPacketSize字段Post將無(wú)效ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_LEAVE = 0xF, /離開(kāi)包,投遞了這個(gè)包后后續(xù)包都將被拋棄ENUM_ENGINE_COMMUNICATION_PROTOCOL_
21、TYPE_USER = 100 /用戶包,用戶自定義包開(kāi)始為101開(kāi)始100以內(nèi)為協(xié)議內(nèi)部保留 ENUM_NETENGINE_XCOMM_PROTOCOL;如果用戶想要使用我們的系統(tǒng)并且自定義協(xié)議,那么需要定義的主協(xié)議的值需要定義到100以上才是最好的,否則有可能會(huì)引發(fā)沖突.2.2 子協(xié)議子協(xié)議的字段是協(xié)議頭的unOperatorCode表示,表示一個(gè)主協(xié)議下面有多少個(gè)子協(xié)議.在子協(xié)議最開(kāi)始部分,我們還定義了通用子協(xié)議.這些協(xié)議可能適用于所有類(lèi)型的協(xié)議.#define NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_ISOK 0x0001 /通用成
22、功#define NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_ISFAILED 0x0002 /通用失敗#define NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_LEAVE 0x000A /離開(kāi)包2.3 協(xié)議分類(lèi)我們的協(xié)議分為主動(dòng)請(qǐng)求類(lèi)型和通知類(lèi)型主動(dòng)請(qǐng)求類(lèi)型的協(xié)議用戶必須請(qǐng)求后服務(wù)器才會(huì)回復(fù),這個(gè)表示一請(qǐng)求一應(yīng)答模式.通知類(lèi)型的協(xié)議是用戶啟用后服務(wù)器會(huì)自動(dòng)推送的協(xié)議.用戶只需要一直接受即可三 系統(tǒng)協(xié)議系統(tǒng)協(xié)議是指系統(tǒng)內(nèi)部定義好的可以直接使用的協(xié)議.下面展示的通用協(xié)議說(shuō)明都是我們內(nèi)部模塊已經(jīng)定
23、義好的操作.如果你想要自己實(shí)現(xiàn)這些協(xié)議,可以不用關(guān)心.但是,你想要使用我們的組包拆包模塊,你必須按照規(guī)定使用我們的協(xié)議頭,協(xié)議體可以自己定義.我們的協(xié)議,客戶端到服務(wù)器的請(qǐng)求CODE字段都有*REQ*的表示方法,服務(wù)器回復(fù)的CODE字段都是REP的表示方法,他們是一一對(duì)應(yīng)的.服務(wù)器回復(fù)的處理結(jié)果,一般都采用JSON表示,除了CODE表示服務(wù)器處理的協(xié)議意外,我們的JSON用來(lái)表示處理結(jié)果,Code 字段,0一般表示成功,其他值表示失敗,小于0表示服務(wù)器處理錯(cuò)誤,大于0客戶端請(qǐng)求的數(shù)據(jù)有問(wèn)題.當(dāng)然,在某些時(shí)候會(huì)有CodeMsg字段顯示錯(cuò)誤的意思,一般都只有在錯(cuò)誤的時(shí)候才會(huì)有這個(gè)字段.3.1 日志
24、協(xié)議日志協(xié)議是屬于通知協(xié)議,不需要用戶請(qǐng)求,在用戶啟用日志后通過(guò)參數(shù)設(shè)置開(kāi)啟網(wǎng)絡(luò)日志后即可使用.日志協(xié)議格式是協(xié)議頭+協(xié)議體+日志內(nèi)容,如下所示:wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_XLOGunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_XLOG_PUSHunPacketSize = sizeof(NETE
25、NGINE_XLOG_PROTOCOL)byVersion = 1byIsReply = FALSEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL協(xié)議體:typedef struct tag_NetEngine_XLog_ProtocolCHAR tszFuncName64; /函數(shù)名稱(chēng)CHAR tszLogTimer64; /日志時(shí)間int nLogLine; /代碼行數(shù)int nLogLeave; /日志級(jí)別int nLogLen; /打印的日志長(zhǎng)度NETENGINE_XLO
26、G_PROTOCOL, *LPNETENGINE_XLOG_PROTOCOL;3.2 驗(yàn)證協(xié)議驗(yàn)證協(xié)議用于網(wǎng)絡(luò)驗(yàn)證.適用于網(wǎng)絡(luò)驗(yàn)證組件.可用于登錄,注冊(cè),注銷(xiāo),刪除等操作.請(qǐng)注意:驗(yàn)證協(xié)議使用了協(xié)議頭的保留字段wReserve用于回復(fù)客戶端請(qǐng)求,告訴客戶端這次操作成功還是失敗,0表示成功,-1表示失敗3.2.1 刪除協(xié)議 用于刪除一個(gè)用戶3.2.1.1 請(qǐng)求請(qǐng)求一次刪除用戶,你需要使用協(xié)議頭+注冊(cè)協(xié)議來(lái)實(shí)現(xiàn),這次協(xié)議里面的內(nèi)容用于判斷和驗(yàn)證用戶是否有權(quán)限刪除自己.當(dāng)然,配合TOKEN使用,還可以實(shí)現(xiàn)權(quán)限分配.使用TOKEN來(lái)驗(yàn)證這個(gè)用戶有沒(méi)有權(quán)限刪除另一個(gè)用戶 協(xié)議頭:wHeader = NE
27、TENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQDELunPacketSize = sizeof(NETENGINE_PROTOCOL_USERREG)byVersion = 1byIsReply = TRUEwReserve = 0wPacketSerial = 0wT
28、ail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL協(xié)議體:typedef struct tag_NetEngine_Protocol_UserRegTCHAR tszUserName64; /用戶名TCHAR tszPassword64; /密碼TCHAR tszEMailAddr64; /電子郵件地址TCHAR tszLoginTime64; /登錄時(shí)間TCHAR tszRegTime64; /注冊(cè)時(shí)間_int64 nQQNumber; /QQ號(hào)_int64 nPhoneNumber; /電話號(hào)碼_int64 nIDNumber; /身份證號(hào)
29、int nUserLeave; /用戶等級(jí)BOOL bIsOnline; /是否在線NETENGINE_PROTOCOL_USERREG, *LPNETENGINE_PROTOCOL_USERREG;3.2.1.2 回復(fù)wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_COD
30、E_AUTH_REPDELunPacketSize = 0byVersion = 0byIsReply = FALSEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL3.2.2 注冊(cè)協(xié)議3.2.2.1 請(qǐng)求 協(xié)議頭:wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOpera
31、torCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQREGISTERunPacketSize = sizeof(NETENGINE_PROTOCOL_USERREG)byVersion = 1byIsReply = TRUEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL協(xié)議體:typedef struct tag_NetEngine_Protocol_UserRegTCHAR tszUserName64
32、; /用戶名TCHAR tszPassword64; /密碼TCHAR tszEMailAddr64; /電子郵件地址TCHAR tszLoginTime64; /登錄時(shí)間TCHAR tszRegTime64; /注冊(cè)時(shí)間_int64 nQQNumber; /QQ號(hào)_int64 nPhoneNumber; /電話號(hào)碼_int64 nIDNumber; /身份證號(hào)int nUserLeave; /用戶等級(jí)BOOL bIsOnline; /是否在線NETENGINE_PROTOCOL_USERREG, *LPNETENGINE_PROTOCOL_USERREG;3.2.2.2 回復(fù)wHeader
33、= NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REPREGISTERunPacketSize = 0byVersion = 0byIsReply = FALSEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNI
34、CATION_PACKET_PROTOCOL_TAIL "Code":03.2.3 登錄協(xié)議登錄協(xié)議是客戶端和服務(wù)器在請(qǐng)求服務(wù)器交換數(shù)據(jù)的時(shí)候所需要做的第一個(gè)步驟.只有登錄成功,才能使用服務(wù)器,涉及的服務(wù)器有,P2XP服務(wù)器,存儲(chǔ)服務(wù)器,驗(yàn)證服務(wù)器.3.2.3.1 請(qǐng)求 協(xié)議頭:wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUT
35、HunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGINunPacketSize = sizeof(NETENGINE_PROTOCOL_USERAUTH)byVersion = 1byIsReply = TRUEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL協(xié)議體:typedef struct tag_NetEngine_Protocol_AuthCHAR tszUserName
36、64; /用戶名CHAR tszPassword64; /密碼ENUM_PROTOCOLCLIENT_TYPE enClientType; /客戶端類(lèi)型ENUM_PROTOCOLDEVICE_TYPE enDeviceType; /設(shè)備類(lèi)型NETENGINE_PROTOCOL_USERAUTH, *LPNETENGINE_PROTOCOL_USERAUTH;3.2.3.2 回復(fù)wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_
37、PROTOCOL_TYPE_AUTHunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REPLOGINunPacketSize = 0byVersion = 0byIsReply = FALSEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL3.2.3.2.1 回復(fù)類(lèi)別服務(wù)器回復(fù)成功和失敗,可以通過(guò)開(kāi)發(fā)人員自定義,或者通過(guò)統(tǒng)一標(biāo)識(shí)來(lái)確定.在這里.我們通過(guò)wReserver來(lái)確定,這個(gè)值在登錄協(xié)議
38、上面,返回的數(shù)值將表達(dá)以下意思:l 0:成功l 1:用戶不存在l 2:密碼錯(cuò)誤l 3:用戶沒(méi)有權(quán)限l 4:用戶已過(guò)期l 10:協(xié)議出錯(cuò),服務(wù)器無(wú)法解析l 11:服務(wù)器內(nèi)部錯(cuò)誤3.2.4 充值協(xié)議 用戶充值協(xié)議是通過(guò)充值卡來(lái)充值的,充值卡需要通過(guò)我們的序列號(hào)模塊來(lái)生成.3.2.4.1 請(qǐng)求 協(xié)議頭:wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOperatorCode = NETENG
39、INE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQPAYunPacketSize = sizeof(AUTHREG_PROTOCOL_USERPAY)byVersion = 1byIsReply = TRUEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL協(xié)議體:typedef structCHAR tszUserNameNETENGINE_AUTHREG_SERVICE_SQL_MAX_USERNAME; /用戶CHAR tszSe
40、rialNumber128; /序列號(hào)AUTHREG_PROTOCOL_USERPAY, *LPAUTHREG_PROTOCOL_USERPAY;3.2.4.2 回復(fù)wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REPPAYunPacketSize =
41、 0byVersion = 0byIsReply = FALSEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL3.2.5 找回密碼3.2.5.1 請(qǐng)求 協(xié)議頭:請(qǐng)求的協(xié)議,電子郵件,用戶名和身份證以及電話號(hào)碼不能為空wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOper
42、atorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQGETPASSunPacketSize = sizeof(AUTHREG_USERTABLE)byVersion = 1byIsReply = TRUEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL協(xié)議體:typedef struct tag_AuthReg_UserTableCHAR tszUserNameNETENGINE_AUTHREG_SER
43、VICE_SQL_MAX_USERNAME; /用戶CHAR tszPasswordNETENGINE_AUTHREG_SERVICE_SQL_MAX_USERNAME; /用戶密碼CHAR tszRegData64; /注冊(cè)日期 日期格式:2013/1/5-12:33:33CHAR tszLeftTime64; /剩余日期CHAR tszEmailAddr64; /電子郵件地址CHAR tszHardCode32; /硬件碼ENUM_AUTHREG_GENERATESERIALTYPE en_AuthRegSerialType; /充值卡類(lèi)型_int64 dwIDCard; /身份證_int
44、64 dwQQNumber; /QQ號(hào)AUTHREG_USERTABLE, *LPAUTHREG_USERTABLE;3.2.5.2 回復(fù) 協(xié)議頭:wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTHunOperatorCode = NETENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REPGETPASSunPacketSize = size
45、of(NETENGINE_PROTOCOL_USERAUTH)byVersion = 1byIsReply = FALSEwReserve = 0wPacketSerial = 0wTail = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL 協(xié)議體:typedef struct tag_NetEngine_Protocol_AuthCHAR tszUserName64; /用戶名CHAR tszPassword64; /密碼ENUM_PROTOCOLCLIENT_TYPE enClientType; /用戶類(lèi)型ENUM_PROTOCOLDEVICE_TYPE enDeviceType; /設(shè)備類(lèi)型NETENGINE_PROTOCOL_USERAUTH, *LPNETENGINE_PROTOCOL_USERAUTH;3.2.6 獲取時(shí)間獲取時(shí)間表示獲取用戶所剩余的時(shí)間.3.2.6.1 請(qǐng)求 協(xié)議頭:wHeader = NETENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADERxhToken = 0unOperatorType = ENUM_ENGINE_COMMUNICA
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 豆角肥料購(gòu)買(mǎi)合同協(xié)議
- 購(gòu)買(mǎi)設(shè)備材料合同協(xié)議
- 購(gòu)買(mǎi)場(chǎng)地蓋房合同協(xié)議
- 購(gòu)房合同附加協(xié)議范本
- 2025年大學(xué)化學(xué)自我提升試題及答案
- 2025年跨文化交流與溝通能力考核試卷及答案
- 員工入股公司合同協(xié)議
- 商業(yè)倉(cāng)儲(chǔ)服務(wù)合同協(xié)議
- 員工合法合同協(xié)議
- 呼叫系統(tǒng)安裝合同協(xié)議
- 技術(shù)學(xué)校直飲水工程施工組織設(shè)計(jì)(方案)
- 砂石料采購(gòu)服務(wù)方案(投標(biāo)方案)
- 江蘇省四星級(jí)高中評(píng)估標(biāo)準(zhǔn)及評(píng)價(jià)細(xì)則
- 生產(chǎn)制造計(jì)劃進(jìn)度表
- 山東省病理質(zhì)控
- 民航M9英語(yǔ)詞匯練習(xí)
- 寫(xiě)給女朋友的一萬(wàn)字情書(shū)
- 招投標(biāo)基礎(chǔ)知識(shí)教育課件
- 高校畢業(yè)生就業(yè)觀念:特點(diǎn)、變化與差異研究
- 中醫(yī)病證診斷療效標(biāo)準(zhǔn)
- 先天性心臟病診斷治療指南
評(píng)論
0/150
提交評(píng)論