@@ -25,7 +25,7 @@ using namespace std;
2525XSOCKET m_Socket;
2626__int64x nLastNumber = 0 ;
2727LPCXSTR lpszKey = _X(" XEngine_CommKey" ); // 主题
28- LPCXSTR lpszUser = _X(" aaadddzxc " );
28+ LPCXSTR lpszUser = _X(" 123123aa " );
2929LPCXSTR lpszPass = _X(" 123123" );
3030
3131void MQ_Authorize ()
@@ -247,6 +247,56 @@ void MQ_Post(LPCXSTR lpszMsgBuffer, int nType = 0, int nPubTime = -1, bool bSelf
247247 memcpy (&st_XMQProtocol, ptszMsgBuffer, sizeof (XENGINE_PROTOCOL_XMQ));
248248 BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
249249}
250+ void MQ_PostEMail (LPCXSTR lpszMsgBuffer)
251+ {
252+ int nLen = 0 ;
253+ XENGINE_PROTOCOLHDR st_ProtocolHdr;
254+ XENGINE_PROTOCOL_XMQ st_XMQProtocol;
255+ XCHAR tszMsgBuffer[2048 ];
256+
257+ memset (tszMsgBuffer, ' \0 ' , sizeof (tszMsgBuffer));
258+ memset (&st_ProtocolHdr, ' \0 ' , sizeof (XENGINE_PROTOCOLHDR));
259+ memset (&st_XMQProtocol, ' \0 ' , sizeof (XENGINE_PROTOCOL_XMQ));
260+
261+ st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER;
262+ st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_XMQ;
263+ st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQPOST;
264+ st_ProtocolHdr.byIsReply = true ; // 获得处理返回结果
265+ st_ProtocolHdr.byVersion = ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_STRING;
266+ st_ProtocolHdr.unPacketSize = sizeof (XENGINE_PROTOCOL_XMQ) + strlen (lpszMsgBuffer);
267+ st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL;
268+
269+ st_XMQProtocol.nSerial = 0 ; // 序列号,0服务会自动处理
270+ st_XMQProtocol.nKeepTime = 0 ;
271+ st_XMQProtocol.nPubTime = 0 ;
272+ strcpy (st_XMQProtocol.tszMQKey , lpszKey);
273+ strcpy (st_XMQProtocol.
tszMQUsr ,
" [email protected] " );
274+
275+ st_XMQProtocol.st_MSGAttr .byAttrEMail = 1 ;
276+
277+ nLen = sizeof (XENGINE_PROTOCOLHDR) + st_ProtocolHdr.unPacketSize ;
278+ memcpy (tszMsgBuffer, &st_ProtocolHdr, sizeof (XENGINE_PROTOCOLHDR));
279+ memcpy (tszMsgBuffer + sizeof (XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof (XENGINE_PROTOCOL_XMQ));
280+ memcpy (tszMsgBuffer + sizeof (XENGINE_PROTOCOLHDR) + sizeof (XENGINE_PROTOCOL_XMQ), lpszMsgBuffer, strlen (lpszMsgBuffer));
281+
282+ if (!XClient_TCPSelect_SendMsg (m_Socket, tszMsgBuffer, nLen))
283+ {
284+ _xtprintf (" 发送投递失败!\n " );
285+ return ;
286+ }
287+ nLen = 2048 ;
288+ XCHAR* ptszMsgBuffer;
289+ memset (&st_ProtocolHdr, ' \0 ' , sizeof (XENGINE_PROTOCOLHDR));
290+
291+ if (!XClient_TCPSelect_RecvPkt (m_Socket, &ptszMsgBuffer, &nLen, &st_ProtocolHdr))
292+ {
293+ _xtprintf (" 接受数据失败!\n " );
294+ return ;
295+ }
296+ memset (&st_XMQProtocol, ' \0 ' , sizeof (XENGINE_PROTOCOL_XMQ));
297+ memcpy (&st_XMQProtocol, ptszMsgBuffer, sizeof (XENGINE_PROTOCOL_XMQ));
298+ BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
299+ }
250300void MQ_Get (int nType = 0 )
251301{
252302 int nLen = 0 ;
@@ -529,6 +579,7 @@ int main(int argc, char** argv)
529579 _xtprintf (" 连接成功!\n " );
530580
531581 MQ_Authorize ();
582+ MQ_PostEMail (" test for email" );
532583 MQ_GetUNRead ();
533584 MQ_Create ();
534585 MQ_Post (NULL , ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_BIN, -1 , true );
0 commit comments