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 );
0 commit comments