⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devclientsocket.cpp

📁 模拟手机源程序,做短信系统(源码)
💻 CPP
字号:
// DevClientSocket.cpp: implementation of the CDevClientSocket class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "VSMSCNEW.h"
#include "DevClientSocket.h"
#include "Global.h"
#include "DataDef.h"
#include "ConstDef.h"
#include "DevLinkManager.h"


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDevClientSocket::CDevClientSocket()
{
	ZeroMemory(m_szSim,sizeof(m_szSim));
	bNewSocket=TRUE;
}

CDevClientSocket::~CDevClientSocket()
{
	bNewSocket=FALSE;
}
BOOL CDevClientSocket::OnDisconnect()
{
	bNewSocket=FALSE;
    g_pDevLinkManager->ReMoveDev(this);
	return TRUE;
}

	//接收消息函数
BOOL CDevClientSocket::ReceiveMsg(char pszBuf[],UINT puBufLen,UINT puCommandID,UINT puSequenceID)
{
	switch(puCommandID)
	{
	case DEV_CONNECT:
		{

	        ZeroMemory(m_szDevName,sizeof(m_szDevName));
	        ZeroMemory(m_szSim,sizeof(m_szSim));
			STRUCT_DEV_CONNECT* pConnect=(STRUCT_DEV_CONNECT*)pszBuf;
			STRUCT_DEV_HEADER  s_ConRep;
			ZeroMemory(&s_ConRep,sizeof(STRUCT_DEV_HEADER));
			strncpy(m_szSim,pConnect->szSimNo,21);
			strncpy(m_szDevName,pConnect->szDevname,16);
			s_ConRep.command_id=DEV_CONNECT_REP;
			s_ConRep.command_length=SM_MESSAGE_HEAD_SIZE;
			s_ConRep.sequence_no=pConnect->sHeader.sequence_no;
			if(!g_pDevLinkManager->AddDev(this))
			{
				s_ConRep.command_status =DEV_CONNECT_ERROR;
				SendMsg((char*)&s_ConRep,SM_MESSAGE_HEAD_SIZE);
				Sleep(1000);
				closesocket(m_hSocket);
			}else
				s_ConRep.command_status =SUCCESS;
			
			SendMsg((char*)&s_ConRep,SM_MESSAGE_HEAD_SIZE);
		}break;
	case DEV_DELIVER:
		{
			char szMsg[256];
			sprintf(szMsg,"收到设备(SIM_NO:%s)Deliver消息",m_szSim);
			AddToMsgLog(szMsg);
			STRUCT_DEV_DELIVER* pDeliver=(STRUCT_DEV_DELIVER*)pszBuf;
			g_pDevLinkManager->SendToESMC(*pDeliver);
		}
		break;
	case DEV_LINKTEST:
		{
			STRUCT_DEV_HEADER* pheader=(STRUCT_DEV_HEADER*)pszBuf;
			STRUCT_DEV_HEADER sLinkTest;
			ZeroMemory(&sLinkTest,sizeof(STRUCT_DEV_HEADER));
			sLinkTest.command_id=DEV_LINKTEST_REP;
			sLinkTest.command_length=SM_MESSAGE_HEAD_SIZE;
			sLinkTest.sequence_no=pheader->sequence_no;
			SendMsg((char*)&sLinkTest,SM_MESSAGE_HEAD_SIZE);

		}
	case DEV_LINKTEST_REP:
		break;
	case DEV_DISC:
		{
			char szmsg[1024];
			ZeroMemory(szmsg,sizeof(szmsg));
			sprintf("%s(SIM_NO:%s)请求断开",m_szDevName,m_szSim);
			AddToMsgLog(szmsg);
			g_pDevLinkManager->ReMoveDev(this);
		}
	}
	return TRUE;
}

BOOL CDevClientSocket::SendToESMC(STRUCT_DEV_DELIVER &sDev_Deliver)
{
	return g_pDevLinkManager->SendToESMC(sDev_Deliver);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -