2024-12-21 10:04:04 +08:00
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "GSMServer.h"
|
|
|
|
|
#include "ServiceManager.h"
|
|
|
|
|
#include "log.h"
|
|
|
|
|
|
|
|
|
|
CGSMServer::CGSMServer()
|
|
|
|
|
{
|
|
|
|
|
memset(m_szGsmResponse, 0x00, sizeof(m_szGsmResponse));
|
|
|
|
|
strcpy_s(m_szGsmResponse[_ARGUMENT_INSUFFICIENCY], "Argument Insufficiency");
|
|
|
|
|
strcpy_s(m_szGsmResponse[_UNKNONW_MESSAGE], "Unkown Message");
|
|
|
|
|
strcpy_s(m_szGsmResponse[_MESSAGE_OK], "OK");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CGSMServer::~CGSMServer()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CGSMServer::Open(USHORT nAcceptPort)
|
|
|
|
|
{
|
|
|
|
|
return CSimpleServerFrame::Open(nAcceptPort);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "GsmCmdProcess.h"
|
|
|
|
|
void CGSMServer::Recv(SOCKET * pSocket, const char * pData, int nLen)
|
|
|
|
|
{
|
|
|
|
|
if (nLen <= 0 || nLen-4 >= 256) return;
|
|
|
|
|
char szMsg[256], szRet[256];
|
|
|
|
|
memset(szMsg, 0, sizeof(szMsg));
|
|
|
|
|
memcpy(szMsg, pData+4, nLen-4);
|
|
|
|
|
strcpy_s(szRet, "Unkown Message");
|
|
|
|
|
|
|
|
|
|
if (nLen-4 < 256)
|
|
|
|
|
{
|
|
|
|
|
int nRet = g_pServiceManager->Parse(szMsg, szRet);
|
|
|
|
|
if (nRet != 0)
|
|
|
|
|
{
|
|
|
|
|
strcpy_s(szRet, nRet == -1 ? m_szGsmResponse[_ARGUMENT_INSUFFICIENCY] : m_szGsmResponse[_UNKNONW_MESSAGE]);
|
|
|
|
|
g_Log.Log(LogType::_FILELOG, L"Msg Process Fail [%S] [Err:%s]\n", szMsg, nRet == -1 ? L"Argument Insufficiency" : L"Unkown Message");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
strcpy_s(szRet, m_szGsmResponse[_MESSAGE_OK]);
|
|
|
|
|
g_Log.Log(LogType::_FILELOG, L"Msg Process OK [%S]\n", szMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CGsmCmdProcess::GetInstance()->ParseCmdProcess(szMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
send(*pSocket, szRet, (int)strlen(szRet), 0);
|
|
|
|
|
}
|