Skip to content

Commit 6eac81c

Browse files
committed
rewrite p2xpprotocol module
app write p2xp code
1 parent b2ecf40 commit 6eac81c

File tree

19 files changed

+810
-727
lines changed

19 files changed

+810
-727
lines changed

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPPeer/P2XPPeer_Define.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ typedef struct tag_P2XP_Timer_Information
2424
//一个节点信息
2525
typedef struct tag_NetEngine_P2XPPeer_Info
2626
{
27-
XENGINE_PROTOCOL_USERAUTH st_AuthUser; //用户登录信息
2827
XENGINE_P2XPPEER_PROTOCOL st_PeerAddr; //P2P通信的时候使用的地址(客户方使用)
2928
P2XP_TIMER_INFOMATION st_PeerTimer; //节点时间信息
3029
BOOL bIsLogin;

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPPeer/P2XPPeer_Manage/P2XPPeer_Manage.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ BOOL CNetEngine_P2XPPeerManage::P2XPPeer_Manage_Add(XENGINE_P2XP_PEERINFO st_Pee
4949
stl_MapIterator = stl_MapPeerAddr.begin();
5050
for (;stl_MapIterator != stl_MapPeerAddr.end();stl_MapIterator++)
5151
{
52-
if (0 == _tcsncmp(stl_MapIterator->second->st_AuthUser.tszUserName, st_PeerInfo.st_AuthUser.tszUserName, _tcslen(stl_MapIterator->second->st_AuthUser.tszUserName)))
52+
if (0 == _tcsncmp(stl_MapIterator->second->st_PeerAddr.tszUserName, st_PeerInfo.st_PeerAddr.tszUserName, _tcslen(stl_MapIterator->second->st_PeerAddr.tszUserName)))
5353
{
5454
PeerManage_IsErrorOccur = TRUE;
5555
PeerManage_dwErrorCode = ERROR_XENGINE_P2XP_PEER_MANAGE_ADD_ISEXIST;
@@ -157,7 +157,7 @@ BOOL CNetEngine_P2XPPeerManage::P2XPPeer_Manage_GetUser(LPCTSTR lpszUser, XENGIN
157157
unordered_map<tstring, LPNETENGINE_P2XP_PEERINFO>::const_iterator stl_MapIterator = stl_MapPeerAddr.begin();
158158
for (;stl_MapIterator != stl_MapPeerAddr.end();stl_MapIterator++)
159159
{
160-
if (0 == _tcsncmp(lpszUser,stl_MapIterator->second->st_AuthUser.tszUserName,_tcslen(lpszUser)))
160+
if (0 == _tcsncmp(lpszUser,stl_MapIterator->second->st_PeerAddr.tszUserName,_tcslen(lpszUser)))
161161
{
162162
bIsFound = TRUE;
163163
break;

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/P2XPProtocol_Define.h

Lines changed: 100 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -15,221 +15,186 @@
1515
//////////////////////////////////////////////////////////////////////////
1616
extern "C" DWORD P2XPProtocol_GetLastError(int *pInt_ErrorCode = NULL);
1717
/************************************************************************/
18-
/* 服务协议导出 */
18+
/* 解析协议导出 */
1919
/************************************************************************/
2020
/********************************************************************
21-
函数名称:P2XPProtocol_ServiceMsg_ResponseJson
22-
函数功能:处理一个相应包,用于告诉请求端请求的内容成功还是失败!
23-
参数.一:pSt_ProtocolHdr
21+
函数名称:P2XPProtocol_Parse_Login
22+
函数功能:登录解析函数
23+
参数.一:lpszMsgBuffer
2424
In/Out:In
25-
类型:数据结构指针
26-
可空:N
27-
意思:要处理的协议头
28-
参数.二:pSt_ProtocolP2xp
29-
In/Out:In
30-
类型:数据结构指针
31-
可空:N
32-
意思:要数据的P2XP协议
33-
参数.三:ptszMsgBuffer
34-
In/Out:Out
35-
类型:字符指针
36-
可空:N
37-
意思:输出组号包的数据
38-
参数.四:pInt_Len
39-
In/Out:Out
40-
类型:整数型指针
25+
类型:常量字符指针
4126
可空:N
42-
意思:输出组号包的数据大小
43-
参数.五:nCode
27+
意思:输入要解析的缓冲区
28+
参数.二:nMsgLen
4429
In/Out:In
4530
类型:整数型
46-
可空:Y
47-
意思:输入要返回的状态码,默认为0 成功
48-
参数.六:lpszCodeMsg
31+
可空:N
32+
意思:输入缓冲区大小
33+
参数.三:pSt_P2XPPeer
4934
In/Out:In
50-
类型:常量字符指针
51-
可空:Y
52-
意思:输入状态码意思,可以为NULL
35+
类型:数据结构指针
36+
可空:N
37+
意思:输出解析后的节点信息
5338
返回值
5439
类型:逻辑型
5540
意思:是否成功
5641
备注:
5742
*********************************************************************/
58-
extern "C" BOOL P2XPProtocol_ServiceMsg_ResponseJson(XENGINE_PROTOCOLHDR *pSt_ProtocolHdr, CHAR *ptszMsgBuffer, int *pInt_Len, int nCode = 0, LPCSTR lpszCodeMsg = NULL);
43+
extern "C" BOOL P2XPProtocol_Parse_Login(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer);
5944
/********************************************************************
60-
函数名称:P2XPProtocol_ServiceMsg_ResponseLan
61-
函数功能:响应同步局域网地址列表
62-
参数.一:pSt_ProtocolHdr
45+
函数名称:P2XPProtocol_Parse_List
46+
函数功能:解析列表请求
47+
参数.一:lpszMsgBuffer
6348
In/Out:In
64-
类型:数据结构指针
65-
可空:N
66-
意思:请求的协议头
67-
参数.二:pppSt_ListClients
68-
In/Out:In
69-
类型:三级指针
49+
类型:常量字符指针
7050
可空:N
71-
意思:输入局域网地址信息列表
72-
参数.三:nListCount
51+
意思:输入要解析的缓冲区
52+
参数.二:nMsgLen
7353
In/Out:In
7454
类型:整数型
7555
可空:N
76-
意思:局域网地址列表个数
77-
参数.四:ptszMsgBuffer
56+
意思:输入缓冲区大小
57+
参数.三:ptszPubAddr
7858
In/Out:Out
7959
类型:字符指针
8060
可空:N
81-
意思:导出封装好的缓冲区
82-
参数.五:pInt_Len
83-
In/Out:In/Out
84-
类型:整数型指针
61+
意思:输出公有地址
62+
参数.四:ptszPriAddr
63+
In/Out:Out
64+
类型:字符指针
8565
可空:N
86-
意思:输入你的缓冲区大小,输出缓冲区真实大小
66+
意思:输出私有地址
8767
返回值
8868
类型:逻辑型
8969
意思:是否成功
9070
备注:
9171
*********************************************************************/
92-
extern "C" BOOL P2XPProtocol_ServiceMsg_ResponseLan(XENGINE_PROTOCOLHDR * pSt_ProtocolHdr, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount, CHAR * ptszMsgBuffer, int* pInt_Len);
72+
extern "C" BOOL P2XPProtocol_Parse_List(LPCTSTR lpszMsgBuffer, int nMsgLen, TCHAR* ptszPubAddr, TCHAR* ptszPriAddr);
9373
/********************************************************************
94-
函数名称:P2XPProtocol_ServiceMsg_ResponseQueryUser
95-
函数功能:响应用户查询用户信息的请求协议封包函数
96-
参数.一:pSt_ProtocolHdr
74+
函数名称:P2XPProtocol_Parse_List
75+
函数功能:解析列表请求
76+
参数.一:lpszMsgBuffer
9777
In/Out:In
98-
类型:数据结构指针
78+
类型:常量字符指针
9979
可空:N
100-
意思:请求的协议头
101-
参数.二:pSt_PeerInfo
80+
意思:输入要解析的缓冲区
81+
参数.二:nMsgLen
10282
In/Out:In
103-
类型:数据结构指针
83+
类型:整数型
10484
可空:N
105-
意思:输入获取到的用户信息
106-
参数.三:ptszMsgBuffer
85+
意思:输入缓冲区大小
86+
参数.三:ptszUserName
10787
In/Out:Out
10888
类型:字符指针
10989
可空:N
110-
意思:导出封装好的缓冲区
111-
参数.四:pInt_Len
112-
In/Out:In/Out
113-
类型:整数型指针
114-
可空:N
115-
意思:输入你的缓冲区大小,输出缓冲区真实大小
90+
意思:输出查询的用户名
11691
返回值
11792
类型:逻辑型
11893
意思:是否成功
11994
备注:
12095
*********************************************************************/
121-
extern "C" BOOL P2XPProtocol_ServiceMsg_ResponseQueryUser(XENGINE_PROTOCOLHDR *pSt_ProtocolHdr, XENGINE_P2XPPEER_PROTOCOL *pSt_PeerInfo, CHAR *ptszMsgBuffer, int *pInt_Len);
122-
/************************************************************************/
123-
/* 用户协议导出 */
124-
/************************************************************************/
96+
extern "C" BOOL P2XPProtocol_Parse_User(LPCTSTR lpszMsgBuffer, int nMsgLen, TCHAR* ptszUserName);
12597
/********************************************************************
126-
函数名称:P2XPProtocol_UserMsg_RequestLogin
127-
函数功能:构造一个请求登录数据包
128-
参数.一:pSt_ClientInfo
98+
函数名称:P2XPProtocol_Parse_Connect
99+
函数功能:请求连接到指定地址
100+
参数.一:lpszMsgBuffer
129101
In/Out:In
130-
类型:数据结构指针
102+
类型:常量字符指针
131103
可空:N
132-
意思:输入你构造的客户端信息
133-
参数.二:pSt_UserLogin
104+
意思:输入要解析的缓冲区
105+
参数.二:nMsgLen
134106
In/Out:In
135-
类型:数据结构指针
136-
可空:N
137-
意思:输入你构造的客户端用户信息
138-
参数.三:ptszMsgBuffer
139-
In/Out:Out
140-
类型:字符指针
107+
类型:整数型
141108
可空:N
142-
意思:导出组好包的数据
143-
参数.四:pInt_Len
109+
意思:输入缓冲区大小
110+
参数.三:pSt_P2XPPeer
144111
In/Out:In
145-
类型:整数型指针
112+
类型:数据结构指针
146113
可空:N
147-
意思:导出组好包的数据长度
148-
参数.五:wPacketSerial
149-
In/Out:In
150-
类型:无符号短整数型
151-
可空:Y
152-
意思:设置这个包的序列,可以不设置,服务器返回的包序列也是这个
114+
意思:输出解析后的节点信息
153115
返回值
154116
类型:逻辑型
155-
意思:是否成功构造
117+
意思:是否成功
156118
备注:
157119
*********************************************************************/
158-
extern "C" BOOL P2XPProtocol_UserMsg_RequestLogin(XENGINE_P2XPPEER_PROTOCOL *pSt_ClientInfo, XENGINE_PROTOCOL_USERAUTH *pSt_UserLogin, CHAR *ptszMsgBuffer, int *pInt_Len, WORD wPacketSerial = 0);
120+
extern "C" BOOL P2XPProtocol_Parse_Connect(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol);
121+
/************************************************************************/
122+
/* 打包协议导出 */
123+
/************************************************************************/
159124
/********************************************************************
160-
函数名称:P2XPProtocol_UserMsg_RequestConnect
161-
函数功能:请求连接到一个网络服务
162-
参数.一:pSt_ClientIONet
125+
函数名称:P2XPProtocol_Parse_Login
126+
函数功能:登录解析函数
127+
参数.一:lpszMsgBuffer
163128
In/Out:In
164-
类型:数据结构指针
165-
可空:N
166-
意思:输入你构造的P2XP网络IO结构
167-
参数.二:ptszMsgBuffer
168-
In/Out:Out
169-
类型:字符指针
129+
类型:常量字符指针
170130
可空:N
171-
意思:导出组好包的数据
172-
参数.三:pInt_Len
131+
意思:输入要解析的缓冲区
132+
参数.二:nMsgLen
173133
In/Out:In
174-
类型:整数型指针
134+
类型:整数型
175135
可空:N
176-
意思:导出组好包的数据长度
177-
参数.四:wPacketSerial
136+
意思:输入缓冲区大小
137+
参数.三:pSt_P2XPPeer
178138
In/Out:In
179-
类型:无符号短整数型
180-
可空:Y
181-
意思:设置这个包的序列,可以不设置,服务器返回的包序列也是这个
139+
类型:数据结构指针
140+
可空:N
141+
意思:输出解析后的节点信息
182142
返回值
183143
类型:逻辑型
184-
意思:是否成功构造
144+
意思:是否成功
185145
备注:
186146
*********************************************************************/
187-
extern "C" BOOL P2XPProtocol_UserMsg_RequestConnect(XENGINE_P2XPIO_PROTOCOL *pSt_ClientIONet, CHAR *ptszMsgBuffer, int *pInt_Len, WORD wPacketSerial = 0);
147+
extern "C" BOOL P2XPProtocol_Packet_Common(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL);
188148
/********************************************************************
189-
函数名称:P2XPProtocol_UserMsg_RequestLan
190-
函数功能:请求同步局域网列表封装函数
191-
参数.一:ptszMsgBuffer
149+
函数名称:P2XPProtocol_Packet_Lan
150+
函数功能:响应同步局域网地址列表
151+
参数.一:pppSt_ListClients
152+
In/Out:In
153+
类型:三级指针
154+
可空:N
155+
意思:输入局域网地址信息列表
156+
参数.二:nListCount
157+
In/Out:In
158+
类型:整数型
159+
可空:N
160+
意思:局域网地址列表个数
161+
参数.三:ptszMsgBuffer
192162
In/Out:Out
193163
类型:字符指针
194164
可空:N
195-
意思:导出封装好的数据包
196-
参数.:pInt_Len
197-
In/Out:Out
198-
类型:整数型
165+
意思:导出封装好的缓冲区
166+
参数.:pInt_Len
167+
In/Out:In/Out
168+
类型:整数型指针
199169
可空:N
200-
意思:导出数据包长度
201-
参数.二:bWlan
202-
In/Out:In
203-
类型:逻辑型
204-
可空:Y
205-
意思:请求公网下地址列表还是局域网下地址列表,默认局域网
206-
参数.二:wPacketSerial
207-
In/Out:In
208-
类型:无符号短整数型
209-
可空:Y
210-
意思:输入这个封包的序列号
170+
意思:输入你的缓冲区大小,输出缓冲区真实大小
211171
返回值
212172
类型:逻辑型
213173
意思:是否成功
214174
备注:
215175
*********************************************************************/
216-
extern "C" BOOL P2XPProtocol_UserMsg_RequestLan(CHAR *ptszMsgBuffer, int *pInt_Len, BOOL bWlan = FALSE, WORD wPacketSerial = 0);
176+
extern "C" BOOL P2XPProtocol_Packet_Lan(XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount, TCHAR* ptszMsgBuffer, int* pInt_Len);
217177
/********************************************************************
218-
函数名称:P2XPProtocol_UserMsg_RequestHeartBeat
219-
函数功能:封装一个心跳请求的包
220-
参数.一:ptszMsgBuffer
178+
函数名称:P2XPProtocol_Packet_User
179+
函数功能:响应用户查询用户信息的请求协议封包函数
180+
参数.一:pSt_PeerInfo
181+
In/Out:In
182+
类型:数据结构指针
183+
可空:N
184+
意思:输入获取到的用户信息
185+
参数.二:ptszMsgBuffer
221186
In/Out:Out
222187
类型:字符指针
223188
可空:N
224189
意思:导出封装好的缓冲区
225-
参数.:pInt_Len
226-
In/Out:Out
190+
参数.:pInt_Len
191+
In/Out:In/Out
227192
类型:整数型指针
228193
可空:N
229-
意思:导出缓冲区长度
194+
意思:输入你的缓冲区大小,输出缓冲区真实大小
230195
返回值
231196
类型:逻辑型
232197
意思:是否成功
233198
备注:
234199
*********************************************************************/
235-
extern "C" BOOL P2XPProtocol_UserMsg_RequestHeartBeat(CHAR *ptszMsgBuffer, int *pInt_Len);
200+
extern "C" BOOL P2XPProtocol_Packet_User(XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo, TCHAR* ptszMsgBuffer, int* pInt_Len);

XEngine_Source/XEngine_P2XPComponents/XEngine_P2XPProtocol/P2XPProtocol_Error.h

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,5 @@
1010
// Purpose: P2XP协议构造分析器错误码导出
1111
// History:
1212
*********************************************************************/
13-
/************************************************************************/
14-
/* 用户协议错误表 */
15-
/************************************************************************/
16-
#define ERROR_NETENGINE_P2XP_PROTOCOL_USERMSG_REQUESTLOGIN_PARAMENT 0xB0F1010 //参数错误
17-
#define ERROR_NETENGINE_P2XP_PROTOCOL_USERMSG_REQUESTHB_PARAMENT 0xB0F1020 //参数错误
18-
#define ERROR_NETENGINE_P2XP_PROTOCOL_USERMSG_REQUESTIONET_PARAMENT 0xB0F1030 //参数错误
19-
#define ERROR_NETENGINE_P2XP_PROTOCOL_USERMSG_REQUESTLIST_PARAMENT 0xB0F1040
20-
/************************************************************************/
21-
/* 服务协议错误表 */
22-
/************************************************************************/
23-
#define ERROR_NETENGINE_P2XP_PROTOCOL_SVRMSG_RESPONSEJSON_PARAMENT 0xB0F2000 //参数错误
24-
#define ERROR_NETENGINE_P2XP_PROTOCOL_SVRMSG_RESPONSELAN_PARAMENT 0xB0F2010 //参数错误
25-
#define ERROR_NETENGINE_P2XP_PROTOCOL_SVRMSG_RESPONSELAN_LEN 0xB0F2011 //提供的缓冲区大小不够
26-
#define ERROR_NETENGINE_P2XP_PROTOCOL_SVRMSG_REPQUERYUSER_PARAMENT 0xB0F2020 //参数错误
13+
#define ERROR_XENGINE_P2XP_PROTOCOL_PARAMENT 0xB0F1001
14+
#define ERROR_XENGINE_P2XP_PROTOCOL_PARSE 0xB0F1002

0 commit comments

Comments
 (0)