Skip to content

Commit 51fce30

Browse files
committed
update:tcp app example
1 parent 59f513d commit 51fce30

1 file changed

Lines changed: 73 additions & 15 deletions

File tree

XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp

Lines changed: 73 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <tchar.h>
44
#pragma comment(lib,"Ws2_32.lib")
55
#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib.lib")
6+
#pragma comment(lib,"XEngine_Core/XEngine_Cryption.lib")
67
#pragma comment(lib,"XEngine_Client/XClient_Socket.lib")
78
#endif
89
#include <stdio.h>
@@ -15,18 +16,22 @@ using namespace std;
1516
#include <XEngine_Include/XEngine_ProtocolHdr.h>
1617
#include <XEngine_Include/XEngine_BaseLib/BaseLib_Define.h>
1718
#include <XEngine_Include/XEngine_BaseLib/Algorithm_Error.h>
19+
#include <XEngine_Include/XEngine_Core/Cryption_Define.h>
20+
#include <XEngine_Include/XEngine_Core/Cryption_Error.h>
1821
#include <XEngine_Include/XEngine_Client/XClient_Define.h>
1922
#include <XEngine_Include/XEngine_Client/XClient_Error.h>
2023
#include "../../XEngine_Source/XQueue_ProtocolHdr.h"
2124

2225
//VS2022 Debug x86 Compile
23-
//g++ -std=c++17 -Wall -g MQCore_TCPApp.cpp -o MQCore_TCPApp.exe -lXEngine_BaseLib -lXClient_Socket
26+
//g++ -std=c++17 -Wall -g MQCore_TCPApp.cpp -o MQCore_TCPApp.exe -lXEngine_BaseLib -lXEngine_Cryption -lXClient_Socket
27+
#define XENGINE_CRYPTION_DATA_ENABLE 1
2428

2529
XSOCKET m_Socket;
2630
__int64x nLastNumber = 0;
2731
LPCXSTR lpszKey = _X("XEngine_CommKey"); //主题
2832
LPCXSTR lpszUser = _X("123123aa");
2933
LPCXSTR lpszPass = _X("123123");
34+
LPCXSTR lpszCryptKey = _X("123123aa"); //加解密密钥
3035

3136
void MQ_Authorize()
3237
{
@@ -55,6 +60,10 @@ void MQ_Authorize()
5560
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
5661
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_ProtocolAuth, sizeof(XENGINE_PROTOCOL_USERAUTH));
5762

63+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
64+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
65+
#endif
66+
5867
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
5968
{
6069
_xtprintf("发送投递失败!\n");
@@ -98,6 +107,10 @@ void MQ_GetUNRead(int nType = 0)
98107
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
99108
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
100109

110+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
111+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
112+
#endif
113+
101114
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
102115
{
103116
_xtprintf("发送投递失败!\n");
@@ -112,6 +125,9 @@ void MQ_GetUNRead(int nType = 0)
112125
memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR));
113126
if (XClient_TCPSelect_RecvPkt(m_Socket, &ptszMsgBuffer, &nLen, &st_ProtocolHdr))
114127
{
128+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
129+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nLen, lpszCryptKey);
130+
#endif
115131
if (0 == st_ProtocolHdr.wReserve)
116132
{
117133
_xtprintf("接受到数据,长度:%d,内容:%s\n", st_ProtocolHdr.unPacketSize, ptszMsgBuffer);
@@ -153,6 +169,9 @@ void MQ_Create()
153169
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
154170
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
155171

172+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
173+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
174+
#endif
156175
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
157176
{
158177
_xtprintf("发送投递失败!\n");
@@ -229,6 +248,9 @@ void MQ_Post(LPCXSTR lpszMsgBuffer, int nType = 0, int nPubTime = -1, bool bSelf
229248
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR) + sizeof(XENGINE_PROTOCOL_XMQ), lpszMsgBuffer, strlen(lpszMsgBuffer));
230249
}
231250

251+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
252+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
253+
#endif
232254
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
233255
{
234256
_xtprintf("发送投递失败!\n");
@@ -243,6 +265,10 @@ void MQ_Post(LPCXSTR lpszMsgBuffer, int nType = 0, int nPubTime = -1, bool bSelf
243265
_xtprintf("接受数据失败!\n");
244266
return;
245267
}
268+
269+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
270+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nLen, lpszCryptKey);
271+
#endif
246272
memset(&st_XMQProtocol, '\0', sizeof(XENGINE_PROTOCOL_XMQ));
247273
memcpy(&st_XMQProtocol, ptszMsgBuffer, sizeof(XENGINE_PROTOCOL_XMQ));
248274
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
@@ -279,6 +305,9 @@ void MQ_PostEMail(LPCXSTR lpszMsgBuffer)
279305
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
280306
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR) + sizeof(XENGINE_PROTOCOL_XMQ), lpszMsgBuffer, strlen(lpszMsgBuffer));
281307

308+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
309+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
310+
#endif
282311
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
283312
{
284313
_xtprintf("发送投递失败!\n");
@@ -293,6 +322,9 @@ void MQ_PostEMail(LPCXSTR lpszMsgBuffer)
293322
_xtprintf("接受数据失败!\n");
294323
return;
295324
}
325+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
326+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nLen, lpszCryptKey);
327+
#endif
296328
memset(&st_XMQProtocol, '\0', sizeof(XENGINE_PROTOCOL_XMQ));
297329
memcpy(&st_XMQProtocol, ptszMsgBuffer, sizeof(XENGINE_PROTOCOL_XMQ));
298330
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
@@ -323,6 +355,9 @@ void MQ_Get(int nType = 0)
323355
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
324356
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
325357

358+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
359+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
360+
#endif
326361
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
327362
{
328363
_xtprintf("发送投递失败!\n");
@@ -338,6 +373,9 @@ void MQ_Get(int nType = 0)
338373
memset(&st_XMQProtocol, '\0', sizeof(XENGINE_PROTOCOL_XMQ));
339374
if (XClient_TCPSelect_RecvPkt(m_Socket, &ptszMsgBuffer, &nLen, &st_ProtocolHdr))
340375
{
376+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
377+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nLen, lpszCryptKey);
378+
#endif
341379
memcpy(&st_XMQProtocol, ptszMsgBuffer, sizeof(XENGINE_PROTOCOL_XMQ));
342380

343381
if (0 == st_ProtocolHdr.wReserve)
@@ -395,6 +433,9 @@ void MQ_TimePublish()
395433
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
396434
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR) + sizeof(XENGINE_PROTOCOL_XMQ), lpszMsgBuffer, _tcsxlen(lpszMsgBuffer));
397435

436+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
437+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
438+
#endif
398439
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
399440
{
400441
_xtprintf("发送投递失败!\n");
@@ -417,6 +458,10 @@ void MQ_TimePublish()
417458
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
418459
memset(&st_XMQProtocol, '\0', sizeof(XENGINE_PROTOCOL_XMQ));
419460

461+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
462+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nLen, lpszCryptKey);
463+
#endif
464+
420465
memcpy(&st_XMQProtocol, ptszMsgBuffer, sizeof(st_XMQProtocol));
421466

422467
_xtprintf("接受到通知消息,主题:%s,序列:%lld,长度:%d,内容:%s\n", st_XMQProtocol.tszMQKey, st_XMQProtocol.nSerial, st_ProtocolHdr.unPacketSize - sizeof(XENGINE_PROTOCOL_XMQ), ptszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ));
@@ -448,22 +493,27 @@ void MQ_GetNumber()
448493
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
449494
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
450495

496+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
497+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
498+
#endif
451499
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
452500
{
453501
_xtprintf("发送投递失败!\n");
454502
return;
455503
}
456504

457-
nLen = 2048;
458-
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
459-
if (XClient_TCPSelect_RecvMsg(m_Socket, tszMsgBuffer, &nLen))
505+
nLen = 0;
506+
XCHAR* ptszMsgBuffer = NULL;
507+
memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR));
508+
509+
if (XClient_TCPSelect_RecvPkt(m_Socket, &ptszMsgBuffer, &nLen, &st_ProtocolHdr))
460510
{
461-
XENGINE_MQNUMBER st_MQNumber;
462-
memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR));
463-
memset(&st_MQNumber, '\0', sizeof(XENGINE_MQNUMBER));
511+
XENGINE_MQNUMBER st_MQNumber = {};
464512

465-
memcpy(&st_ProtocolHdr, tszMsgBuffer, sizeof(XENGINE_PROTOCOLHDR));
466-
memcpy(&st_MQNumber, tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), sizeof(XENGINE_MQNUMBER));
513+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
514+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nLen, lpszCryptKey);
515+
#endif
516+
memcpy(&st_MQNumber, ptszMsgBuffer, sizeof(XENGINE_MQNUMBER));
467517

468518
if (0 == st_ProtocolHdr.wReserve)
469519
{
@@ -503,21 +553,26 @@ void MQ_BindTopic()
503553
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
504554
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
505555

556+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
557+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
558+
#endif
506559
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
507560
{
508561
_xtprintf("发送投递失败!\n");
509562
return;
510563
}
511564

512-
nLen = 2048;
513-
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
514-
if (XClient_TCPSelect_RecvMsg(m_Socket, tszMsgBuffer, &nLen))
565+
nLen = 0;
566+
XCHAR* ptszMsgBuffer = NULL;
567+
memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR));
568+
if (XClient_TCPSelect_RecvPkt(m_Socket, &ptszMsgBuffer, &nLen, &st_ProtocolHdr))
515569
{
516-
memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR));
517570
memset(&st_XMQProtocol, '\0', sizeof(XENGINE_PROTOCOL_XMQ));
518571

519-
memcpy(&st_ProtocolHdr, tszMsgBuffer, sizeof(XENGINE_PROTOCOLHDR));
520-
memcpy(&st_XMQProtocol, tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), sizeof(XENGINE_PROTOCOL_XMQ));
572+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
573+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nLen, lpszCryptKey);
574+
#endif
575+
memcpy(&st_XMQProtocol, ptszMsgBuffer, sizeof(XENGINE_PROTOCOL_XMQ));
521576

522577
if (0 == st_ProtocolHdr.wReserve)
523578
{
@@ -556,6 +611,9 @@ void MQ_DeleteTopic()
556611
memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
557612
memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ));
558613

614+
#if 1 == XENGINE_CRYPTION_DATA_ENABLE
615+
Cryption_Api_CryptEncodec(NULL, (XBYTE*)(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR)), (int*)&st_ProtocolHdr.unPacketSize, lpszCryptKey);
616+
#endif
559617
if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen))
560618
{
561619
_xtprintf("发送投递失败!\n");

0 commit comments

Comments
 (0)