Skip to content

Commit 9fb0c69

Browse files
committed
added:P2XP Components with Peer Management Module.
added:P2XP Components with Protocol Module. Linux:Complie Support
1 parent 67f7b08 commit 9fb0c69

39 files changed

+2855
-9
lines changed

XEngine_Source/Makefile

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,34 @@ UNICODE = 0
33

44
FLAGS = RELEASE=$(RELEASE)
55

6-
COMPONENTS_SQL_PATH = ./XEngine_StorageComponents/XStorage_SQLPacket
7-
COMPONENTS_PROTOCOL_PATH = ./XEngine_StorageComponents/XStorage_Protocol
6+
STORAGE_SQL_PATH = ./XEngine_StorageComponents/XStorage_SQLPacket
7+
STORAGE_PROTOCOL_PATH = ./XEngine_StorageComponents/XStorage_Protocol
8+
P2XP_PEER_PATH = ./XEngine_P2XPComponents/XEngine_P2XPPeer
9+
P2XP_PROTOCOL_PATH = ./XEngine_P2XPComponents/XEngine_P2XPProtocol
810

911
BASE_CONFIG_PATH = ./StorageModule_Config
1012
BASE_SESSION_PATH = ./StorageModule_Session
1113

1214
APPSERVICE_STORAGE_PATH = ./XEngine_StorageApp
1315

1416
NETENGINE_LIB = libXStorage_SQLPacket.so libXStorage_Protocol.so \
17+
libXEngine_P2XPPeer.so libXEngine_P2XPProtocol.so \
1518
libStorageModule_Config.so libStorageModule_Session.so \
1619
XEngine_StorageApp.exe
1720

1821
.PHONY:MakeAll
1922
MakeAll:$(NETENGINE_LIB)
2023

2124
libXStorage_SQLPacket.so:
22-
make -C $(COMPONENTS_SQL_PATH) $(FLAGS)
25+
make -C $(STORAGE_SQL_PATH) $(FLAGS)
2326
libXStorage_Protocol.so:
24-
make -C $(COMPONENTS_PROTOCOL_PATH) $(FLAGS)
27+
make -C $(STORAGE_PROTOCOL_PATH) $(FLAGS)
2528

29+
libXEngine_P2XPPeer.so:
30+
make -C $(P2XP_PEER_PATH) $(FLAGS)
31+
libXEngine_P2XPProtocol.so:
32+
make -C $(P2XP_PROTOCOL_PATH) $(FLAGS)
33+
2634
libStorageModule_Config.so:
2735
make -C $(BASE_CONFIG_PATH) $(FLAGS)
2836
libStorageModule_Session.so:
@@ -31,11 +39,11 @@ libStorageModule_Session.so:
3139
XEngine_StorageApp.exe:
3240
make -C $(APPSERVICE_STORAGE_PATH) $(FLAGS)
3341

34-
#安装开发包文件
42+
3543
SetFlags_Install:
3644
export FLAGS=InstallAll
3745
InstallAll:SetFlags_Install $(NETENGINE_LIB)
38-
#清除临时文件
46+
3947
SetFlags_Clean:
4048
export FLAGS=CleanAll
4149
CleanAll:SetFlags_Clean $(NETENGINE_LIB)
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
CC = g++ -Wall -std=c++17 -fPIC
2+
RELEASE = 0
3+
UNICODE = 0
4+
INCLUDE = -I ./
5+
FILECENTOS = /etc/redhat-release
6+
LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_NetHelp
7+
LIB = -lXEngine_BaseLib -lNetHelp_APIHelp
8+
LIBEX = -static-libgcc -lrt -ldl -lpthread
9+
LOADSO = -Wl,-rpath=./,--disable-new-dtags
10+
LIBINCLUDE = P2XPPeer_Manage.o pch.o
11+
12+
ifeq ($(RELEASE),1)
13+
FLAGS = -c -O2
14+
DEBUG =
15+
else
16+
FLAGS = -c -lc_p
17+
DEBUG = -g -pg
18+
endif
19+
20+
ifeq ($(UNICODE),1)
21+
UNICODE = -D _UNICODE
22+
else
23+
UNICODE =
24+
endif
25+
26+
all:$(LIBINCLUDE)
27+
$(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_P2XPPeer.so -shared -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO)
28+
29+
30+
P2XPPeer_Manage.o:./P2XPPeer_Manage/P2XPPeer_Manage.cpp
31+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./P2XPPeer_Manage/P2XPPeer_Manage.cpp
32+
33+
pch.o:pch.cpp
34+
$(CC) $(DEBUG) $(FLAGS) $(UNICODE) pch.cpp
35+
36+
37+
InstallAll:InstallSo
38+
InstallSo:./libXEngine_P2XPPeer.so
39+
cp ./libXEngine_P2XPPeer.so ../../../XEngine_Release/libXEngine_P2XPPeer.so
40+
41+
42+
CleanAll:CleanObj CleanMk
43+
CleanObj:
44+
rm *.o
45+
CleanMk:
46+
rm *.so
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2021/07/08 13:15:34
4+
// File Name: D:\XEngine_Storage\XEngine_Source\XEngine_P2XPComponents\XEngine_P2XPPeer\P2XPPeer_Define.h
5+
// File Path: D:\XEngine_Storage\XEngine_Source\XEngine_P2XPComponents\XEngine_P2XPPeer
6+
// File Base: P2XPPeer_Define
7+
// File Ext: h
8+
// Project: XEngine(网络通信引擎)
9+
// Author: qyt
10+
// Purpose: 节点管理器导出定义
11+
// History:
12+
*********************************************************************/
13+
//////////////////////////////////////////////////////////////////////////
14+
// 导出数据结构
15+
//////////////////////////////////////////////////////////////////////////
16+
//计时器
17+
typedef struct tag_P2XP_Timer_Information
18+
{
19+
__int64x dwUserTime; //用户存在时间
20+
__int64x dwPacketTime; //包时间,拿到包后的存活时间
21+
__int64x dwKeepAlive; //保活计时器时间,经过网络时间
22+
unsigned short int usTTL : 1; //路由数
23+
}P2XP_TIMER_INFOMATION, *LPP2XP_TIMER_INFOMATION;
24+
//一个节点信息
25+
typedef struct tag_NetEngine_P2XPPeer_Info
26+
{
27+
XENGINE_PROTOCOL_USERAUTH st_AuthUser; //用户登录信息
28+
XENGINE_P2XPPEER_PROTOCOL st_PeerAddr; //P2P通信的时候使用的地址(客户方使用)
29+
P2XP_TIMER_INFOMATION st_PeerTimer; //节点时间信息
30+
BOOL bIsLogin;
31+
}XENGINE_P2XP_PEERINFO,*LPNETENGINE_P2XP_PEERINFO;
32+
//////////////////////////////////////////////////////////////////////////
33+
// 导出函数
34+
//////////////////////////////////////////////////////////////////////////
35+
extern "C" DWORD P2XPPeer_GetLastError(int *pInt_ErrorCode = NULL);
36+
/************************************************************************/
37+
/* 节点管理器导出函数 */
38+
/************************************************************************/
39+
/********************************************************************
40+
函数名称:P2XPPeer_Manage_Add
41+
函数功能:添加一个客户到一个节点信息
42+
参数.一:pSt_PeerInfo
43+
In/Out:In
44+
类型:结构体指针
45+
可空:N
46+
意思:要添加的节点信息
47+
返回值
48+
类型:逻辑型
49+
意思:是否添加成功
50+
备注:
51+
*********************************************************************/
52+
extern "C" BOOL P2XPPeer_Manage_Add(XENGINE_P2XP_PEERINFO st_PeerInfo);
53+
/********************************************************************
54+
函数名称:P2XPPeer_Manage_Get
55+
函数功能:获取P2P节点对应信息
56+
参数.一:lpszAddr
57+
In/Out:In
58+
类型:常量字符指针
59+
可空:N
60+
意思:要查询的地址
61+
参数.二:pSt_PeerInfo
62+
In/Out:Out
63+
类型:数据结构指针
64+
可空:Y
65+
意思:如果为空将不导出对应的数据
66+
返回值
67+
类型:逻辑型
68+
意思:是否查找成功
69+
备注:
70+
*********************************************************************/
71+
extern "C" BOOL P2XPPeer_Manage_Get(LPCSTR lpszAddr,XENGINE_P2XP_PEERINFO *pSt_PeerInfo = NULL);
72+
/********************************************************************
73+
函数名称:P2XPPeer_Manage_GetUser
74+
函数功能:通过用户名获取节点信息
75+
参数.一:lpszUser
76+
In/Out:In
77+
类型:常量字符指针
78+
可空:N
79+
意思:要搜索的用户的 标识符
80+
参数.二:pSt_PeerInfo
81+
In/Out:Out
82+
类型:数据结构指针
83+
可空:Y
84+
意思:导出获取到的信息
85+
返回值
86+
类型:逻辑型
87+
意思:是否成功
88+
备注:
89+
*********************************************************************/
90+
extern "C" BOOL P2XPPeer_Manage_GetUser(LPCSTR lpszUser, XENGINE_P2XP_PEERINFO *pSt_PeerInfo = NULL);
91+
/********************************************************************
92+
函数名称:P2XPPeer_Manage_GetLan
93+
函数功能:获取局域网IP地址列表
94+
参数.一:lpszPubAddr
95+
In/Out:In
96+
类型:常量字符指针
97+
可空:N
98+
意思:要查找的局域网相同公网的IP地址
99+
参数.二:lpszPriAddr
100+
In/Out:In
101+
类型:常量字符指针
102+
可空:N
103+
意思:输入要获取同一公网下不同私有网段的IP列表
104+
参数.三:pppSt_P2XPClient
105+
In/Out:Out
106+
类型:三级指针
107+
可空:N
108+
意思:导出局域网IP地址列表
109+
参数.四:pInt_ListCount
110+
In/Out:Out
111+
类型:整数型指针
112+
可空:N
113+
意思:输出地址列表个数
114+
返回值
115+
类型:逻辑型
116+
意思:是否成功
117+
备注:参数三需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放
118+
*********************************************************************/
119+
extern "C" BOOL P2XPPeer_Manage_GetLan(LPCSTR lpszPubAddr, LPCSTR lpszPriAddr, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount);
120+
/********************************************************************
121+
函数名称:P2XPPeer_Manage_GetLList
122+
函数功能:获取同一公网下所有局域网主IP列表
123+
参数.一:lpszPubAddr
124+
In/Out:In
125+
类型:常量字符指针
126+
可空:N
127+
意思:输入要获取的IP地址
128+
参数.二:pppszP2XPClient
129+
In/Out:Out
130+
类型:三级指针
131+
可空:N
132+
意思:输出内网主IP地址列表
133+
参数.三:pInt_ListCount
134+
In/Out:Out
135+
类型:整数型指针
136+
可空:N
137+
意思:输出列表个数
138+
返回值
139+
类型:逻辑型
140+
意思:是否成功
141+
备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放
142+
*********************************************************************/
143+
extern "C" BOOL P2XPPeer_Manage_GetLList(LPCSTR lpszPubAddr, CHAR*** pppszP2XPClient, int* pInt_ListCount);
144+
/********************************************************************
145+
函数名称:P2XPPeer_Manage_GetWList
146+
函数功能:获取所有连接到的公网地址列表
147+
参数.一:pppszP2XPClient
148+
In/Out:Out
149+
类型:三级指针
150+
可空:N
151+
意思:输出地址列表
152+
参数.二:pInt_ListCount
153+
In/Out:Out
154+
类型:整数型指针
155+
可空:N
156+
意思:输出列表个数
157+
返回值
158+
类型:逻辑型
159+
意思:是否成功
160+
备注:
161+
*********************************************************************/
162+
extern "C" BOOL P2XPPeer_Manage_GetWList(CHAR*** pppszP2XPClient, int* pInt_ListCount);
163+
/********************************************************************
164+
函数名称:P2XPPeer_Manage_Set
165+
函数功能:设置指定客户的节点信息
166+
参数.一:lpszAddr
167+
In/Out:In
168+
类型:常量字符指针
169+
可空:N
170+
意思:要设置的客户
171+
参数.二:st_PeerInfo
172+
In/Out:In
173+
类型:结构体
174+
可空:N
175+
意思:要设置的节点信息
176+
返回值
177+
类型:逻辑型
178+
意思:是否设置成功
179+
备注:
180+
*********************************************************************/
181+
extern "C" BOOL P2XPPeer_Manage_Set(LPCSTR lpszAddr,XENGINE_P2XP_PEERINFO st_PeerInfo);
182+
/********************************************************************
183+
函数名称:P2XPPeer_Manage_Delete
184+
函数功能:删除一个指定的节点
185+
参数.一:pszUserName
186+
In/Out:In
187+
类型:字符串指针
188+
可空:N
189+
意思:要删除的节点名称
190+
返回值
191+
类型:逻辑型
192+
意思:是否成功删除
193+
备注:
194+
*********************************************************************/
195+
extern "C" BOOL P2XPPeer_Manage_Delete(LPCSTR lpszUserName);
196+
/********************************************************************
197+
函数名称:P2XPPeer_Manage_DelAll
198+
函数功能:清空节点列表数据
199+
返回值
200+
类型:逻辑型
201+
意思:是否成功
202+
备注:
203+
*********************************************************************/
204+
extern "C" BOOL P2XPPeer_Manage_DelAll();
205+
/********************************************************************
206+
函数名称:P2XPPeer_Manage_GetCount
207+
函数功能:获取节点个数
208+
参数.一:pInt_PeerCount
209+
In/Out:Out
210+
类型:整数型指针
211+
可空:N
212+
意思:导出获取到的个数
213+
返回值
214+
类型:逻辑型
215+
意思:是否成功获取到节点个数
216+
备注:
217+
*********************************************************************/
218+
extern "C" BOOL P2XPPeer_Manage_GetCount(int *pInt_PeerCount);
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#pragma once
2+
/********************************************************************
3+
// Created: 2021/07/08 13:15:42
4+
// File Name: D:\XEngine_Storage\XEngine_Source\XEngine_P2XPComponents\XEngine_P2XPPeer\P2XPPeer_Error.h
5+
// File Path: D:\XEngine_Storage\XEngine_Source\XEngine_P2XPComponents\XEngine_P2XPPeer
6+
// File Base: P2XPPeer_Error
7+
// File Ext: h
8+
// Project: XEngine(网络通信引擎)
9+
// Author: qyt
10+
// Purpose: P2P节点管理器导出错误
11+
// History:
12+
*********************************************************************/
13+
/************************************************************************/
14+
/* 节点管理器错误 */
15+
/************************************************************************/
16+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_ADD_ISEXIST 0xB0E0001 //用户已经存在
17+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_ADD_MALLOC 0xB0E0002 //申请内存失败
18+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GET_PARAMENT 0xB0E0010 //获取用户信息失败,参数错误
19+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GET_NOTFOUND 0xB0E0011 //没有找到用户
20+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_SET_PARAMENT 0xB0E0020 //参数错误
21+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_SET_NOTFOUND 0xB0E0021 //没有找到用户
22+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETWLIST_PARAMENT 0xB0E0030 //参数错误
23+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETWLIST_NOTFOUND 0xB0E0031 //没有找到
24+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_DELETE_PARAMENT 0xB0E0040 //参数错误
25+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_DELETE_NOTFOUND 0xB0E0041 //没有找到用户
26+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETLAN_PARAMENT 0xB0E0050 //参数错误
27+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETLAN_NOTPUBADDRR 0xB0E0051 //公网IP地址没有找到
28+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETLAN_NOTPRIADDR 0xB0E0052 //私有网络IP地址没有找到
29+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETLAN_NOLIST 0xB0E0053 //没有数据存在
30+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETLAN_NOTFOUND 0xB0E0054 //没有找到链接地址
31+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETUSER_PARAMENT 0xB0E0060 //参数错误
32+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETUSER_NOTFOUND 0xB0E0061 //没有找到
33+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETLLIST_PARAMENT 0xB0E0070 //获取列表失败,参数错误
34+
#define ERROR_XENGINE_P2XP_PEER_MANAGE_GETLLIST_NOTFOUND 0xB0E0071 //没有找到指定列表

0 commit comments

Comments
 (0)