📄 cmpp.cpp
字号:
#include "stdafx.h"
#include "cmpp.h"
#pragma comment(lib,"Ws2_32")
short CMPP_Sequence = 0;
short CMPP_MsgID = 0;
CMPP_Head::CMPP_Head()
{
TotalLength=htonl(sizeof(CMPP_Head));
CommandID=0;
SequenceID=0;
}
CMPP_Head::~CMPP_Head()
{
}
int CMPP_Head::ASCII_To_UNICOD(LPCSTR pSource, char * pUnicodeBuffer)
{
int r,i=0;
BYTE byte;
char buffer[1024];
memset(pUnicodeBuffer, 0, strlen(pSource)*2);
int len = (int)strlen(pSource);
r = ::MultiByteToWideChar(CP_ACP, 0, pSource, (int)strlen(pSource), (LPWSTR)pUnicodeBuffer, len );
if(r <= 0 )
return r;
if(len < (int)strlen(pSource)*2 )
{
strcpy(buffer, pSource);
len = 0;
for(i=0;i < (int)strlen(buffer); i++)
{
if(((int)buffer[i]&0xff) < 0x80)
len += 2;
else
len ++;
}
}
for(i=0;i<len/2;i++)
{
byte = *(pUnicodeBuffer+2*i);
*(pUnicodeBuffer+2*i) = *(pUnicodeBuffer+2*i+1);
*(pUnicodeBuffer+2*i+1) = byte;
}
*(pUnicodeBuffer + len) = L'\0';
return len;
}
int CMPP_Head::UCS2_To_ASCII(LPCWSTR pSource,int len,char * pBuffer)
{
BYTE b;
for(int i=0; i<len/2; i++)
{
b = *((char *)pSource + 2*i);
*((char *)pSource + 2*i) = *((char *)pSource + 2*i + 1);
*((char *)pSource + 2*i + 1) = b;
}
CString Ret(pSource);
sprintf(pBuffer, "%s", Ret);
return len/2;
}
int CMPP_Head::UNICOD_To_ASCII(LPCWSTR pSource,int len,char * pBuffer)
{
BOOL bUsedDefault;
BYTE b;
for(int i=0; i<len/2; i++)
{
b = *((char *)pSource + 2*i);
*((char *)pSource + 2*i) = *((char *)pSource + 2*i + 1);
*((char *)pSource + 2*i + 1) = b;
}
int ret = ::WideCharToMultiByte(CP_ACP, 0, pSource, (int)wcslen(pSource), pBuffer, (int)wcslen(pSource)/2 + 1, "", &bUsedDefault);
return (ret > 0 && !bUsedDefault) ? ret : 0 ;
}
CMPP_Connect::CMPP_Connect(void)
{
TotalLength=htonl(sizeof(CMPP_Connect));
CommandID=htonl(CMPP_Msg::CONNECT);
SequenceID=htonl(CMPP_Sequence++);
ZeroMemory(SourceAddr,6);
ZeroMemory(Authenticator,16);
Version=0x20;
SYSTEMTIME t;
GetLocalTime(&t);
char temp[80];
sprintf(temp,"%02d%02d%02d%02d%02d",t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond);
Timestamp=0;
}
CMPP_Connect::~CMPP_Connect(void)
{
}
CMPP_ConnectResp::CMPP_ConnectResp(void)
{
TotalLength=htonl(sizeof(CMPP_ConnectResp));
CommandID=htonl(CMPP_Msg::CONNECT_RESP);
SequenceID=htonl(CMPP_Sequence++);
Status=0;
ZeroMemory(Authenticator,16);
Version=0;
}
CMPP_ConnectResp::~CMPP_ConnectResp(void)
{
}
CMPP_Terminate::CMPP_Terminate(void)
{
ZeroMemory(this,sizeof(CMPP_Terminate));
TotalLength=htonl(sizeof(CMPP_ConnectResp));
CommandID=htonl(CMPP_Msg::TERMINATE);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_Terminate::~CMPP_Terminate(void)
{
}
CMPP_TerminateResp::CMPP_TerminateResp(void)
{
ZeroMemory(this,sizeof(CMPP_Terminate));
TotalLength=htonl(sizeof(CMPP_ConnectResp));
CommandID=htonl(CMPP_Msg::TERMINATE_RESP);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_TerminateResp::~CMPP_TerminateResp(void)
{
}
CMPP_ActiveTest::CMPP_ActiveTest(void)
{
ZeroMemory(this,sizeof(CMPP_ActiveTest));
TotalLength=htonl(sizeof(CMPP_ActiveTest));
CommandID=htonl(CMPP_Msg::ACTIVE_TEST);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_ActiveTest::~CMPP_ActiveTest(void)
{
}
CMPP_ActiveTestResp::CMPP_ActiveTestResp(void)
{
ZeroMemory(this,sizeof(CMPP_ActiveTestResp));
TotalLength=htonl(sizeof(CMPP_ActiveTestResp));
CommandID=htonl(CMPP_Msg::ACTIVE_TEST_RESP);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_ActiveTestResp::~CMPP_ActiveTestResp(void)
{
}
CMPP_Submit::CMPP_Submit(void)
{
ZeroMemory(this,sizeof(CMPP_Submit));
TotalLength=htonl(sizeof(CMPP_Submit));
CommandID=htonl(CMPP_Msg::SUBMIT);
SequenceID=htonl(CMPP_Sequence++);
Msg_level=1;
Pk_total=1;
Pk_number=1;
Registered_Delivery=1;
Msg_Fmt=15;
DestUsr_tl=1;
}
CMPP_Submit::~CMPP_Submit(void)
{
}
CMPP_SubmitResp::CMPP_SubmitResp(void)
{
ZeroMemory(this,sizeof(CMPP_SubmitResp));
TotalLength=htonl(sizeof(CMPP_SubmitResp));
CommandID=htonl(CMPP_Msg::SUBMIT_RESP);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_SubmitResp::~CMPP_SubmitResp(void)
{
}
CMPP_Deliver::CMPP_Deliver(void)
{
ZeroMemory(this,sizeof(CMPP_Deliver));
TotalLength=htonl(sizeof(CMPP_Deliver));
CommandID=htonl(CMPP_Msg::DELIVER);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_Deliver::~CMPP_Deliver(void)
{
}
CMPP_DeliverResp::CMPP_DeliverResp(void)
{
ZeroMemory(this,sizeof(CMPP_DeliverResp));
TotalLength=htonl(sizeof(CMPP_DeliverResp));
CommandID=htonl(CMPP_Msg::DELIVER_RESP);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_DeliverResp::~CMPP_DeliverResp(void)
{
}
CMPP_Query::CMPP_Query(void)
{
ZeroMemory(this,sizeof(CMPP_Query));
TotalLength=htonl(sizeof(CMPP_Query));
CommandID=htonl(CMPP_Msg::QUERY);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_Query::~CMPP_Query(void)
{
}
CMPP_QueryResp::CMPP_QueryResp(void)
{
ZeroMemory(this,sizeof(CMPP_QueryResp));
TotalLength=htonl(sizeof(CMPP_QueryResp));
CommandID=htonl(CMPP_Msg::QUERY_RESP);
SequenceID=htonl(CMPP_Sequence++);
}
CMPP_QueryResp::~CMPP_QueryResp(void)
{
}
int CMPP_Head::GetMsgID(char * pMsgID)
{
DWORD time=0;
DWORD temp;
ZeroMemory(pMsgID,8);
SYSTEMTIME t;
GetLocalTime(&t);
temp=t.wMonth;
time=time|temp<<26;
temp=t.wDay;
time=time|temp<<21;
temp=t.wHour;
time=time|temp<<16;
temp=t.wMinute;
time=time|temp<<11;
temp=t.wSecond;
time=time|temp<<6;
memcpy(pMsgID,&time,3);
short sequence=CMPP_Sequence++;
memcpy(pMsgID+6,&sequence,2);
return 8;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -