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

📄 commlink.cpp

📁 无线数据服务中心源代码:移动或联通的无限数据终端将采集到的数据通过Internet传送到数据中心
💻 CPP
字号:
// CommLink.cpp: implementation of the CCommLink class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "GTMeter.h"
#include "CommLink.h"

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

const FT_DATA	= 3;

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

CCommLink::CCommLink()
{
	m_bOpen = FALSE;
}

CCommLink::~CCommLink()
{
	Close();
}

BOOL CCommLink::Initilize(CIpAddress& ipAddrLocal, int nLinkMethod)
{
	Close();

	m_ipAddrLocal = ipAddrLocal;

	if (!InitSocketLib())
	{
		//MessageBox(NULL, _T("网络初始化失败!"), NULL, MB_OK | MB_ICONEXCLAMATION); 
		return FALSE;
	}

	m_udpSocket.SetLocalIpAddress(m_ipAddrLocal);
	m_udpSocket.SetCommLink(this);
	m_udpSocket.Start();

	m_bOpen = TRUE;
	return TRUE;
}

BOOL CCommLink::InitSocketLib()
{
	WSADATA wsaData;
	WORD wVersionRequested = MAKEWORD(2, 0);
	if (WSAStartup(wVersionRequested, &wsaData) != 0) 
		return FALSE;
 
	if (LOBYTE(wsaData.wVersion) != 2 ||
	    HIBYTE(wsaData.wVersion) != 0) 
	{
		WSACleanup();
		return FALSE;
	}

	return TRUE;
}

void CCommLink::OnRxPackage(CUdpSocket* pUdpSocket, CIpAddress& ipAddrPeer, BYTE* p, DWORD dwLen)
{
	switch (p[12])
	{
	case FT_DATA:
		OnRxData(pUdpSocket, ipAddrPeer, p, dwLen);
		break;
	}
}

void CCommLink::OnRxData(CUdpSocket* pUdpSocket, CIpAddress& ipAddrPeer, BYTE* p, DWORD dwLen)
{
}

void CCommLink::OnUdpSocketOpen()
{
}

void CCommLink::OnUdpSocketClose()
{
}

void CCommLink::Write(CMeter* pMeter, BYTE* p, DWORD dwLen)
{
	BYTE buf[4096];

	strcpy((char*)buf, pMeter->m_sMobileCode);
	buf[12] = FT_DATA;
	memcpy(&buf[13], p, dwLen);
	BOOL b = m_udpSocket.Write(pMeter->m_ipAddrPeer, buf, dwLen + 13);
}

void CCommLink::Close()
{
	if (m_bOpen)
	{
		m_bOpen = FALSE;
		m_udpSocket.Stop();
		WSACleanup();
	}
}

⌨️ 快捷键说明

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