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

📄 start.cpp

📁 短信防伪系统服务器端
💻 CPP
字号:
// Start.cpp: implementation of the CStart class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "EasyTradeService.h"
#include "Start.h"
#include "Cmpp20.h"
#include <stdio.h>
#include <time.h>
#include "Smgp.h"
#include "Sgip.h"
#include "Cngp.h"
#include "xmlfile.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
//#define new DEBUG_NEW
#endif

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

void OnSubmitedSMS(SUBMIT_SMS   *pSubmited)//发送结果记录返回网关的消息ID和result并且将发送的SUBMIT内容返回
{
    static int count=0;
    static long timeval=time(NULL);
    if(pSubmited)
    {
        char szbuff[128];
        sprintf(szbuff,"submit_resp=%d, timevalue=%d", ++count, time(NULL)- timeval );
    }
    else
    {
        count=0;
        timeval=time(NULL);
    }
    //当发送完返回此消息,这里采用动态分配内存有发送时分配,返回时释放
    delete pSubmited;
}
/*-------------------------------------------------------------*/
typedef struct _CMMP20
{
		long szPORT;//端口号
		
}Cmmp20_Set;


typedef struct _CMMP30
{
		long szPORT;//端口号

}Cmmp30_Set;


typedef struct _SGIP
{
		long szPORT;//端口号

}Sgip_Set;


typedef struct _CNGP
{
		long szPORT;//端口号

}Cngp_Set;

typedef struct _SMGP
{
		long szPORT;//端口号

}Smgp_Set;

typedef struct _SYSSET
{

		long szTREAD;//线程池数
		long szWND;//滑动窗口大小
}Sys_Set;

/*-----------------------------------------------------------------*/
Sys_Set m_SysSet;


CStart::CStart()
{
//	m_xmlFile
//	Cmmp_Set.szPORT=990;
	
	
	
//	long age= m_xmlFile.GetLong("Student/个况", "年龄", 25);
//	std::string strHomeplace =m_xmlFile.GetString ("Student /个况", "籍贯", "浙江嵊州");
//	std::string strSex =m_xmlFile. GetString ("Student /个况", "性别", "男");


//	m_XmlFile.SetLong("系统设置", "发送超时", 60);
//	m_XmlFile.SetLong("系统设置", "重发次数", 3);
}

CStart::~CStart()
{
}

void CStart::Start()
{
//	CXMLFile m_XmlFile("file.xml");
//	m_XmlFile.load("file.xml ");
//	m_XmlFile.GetLong("系统设置", "线程数", m_SysSet.szTREAD);
//	m_XmlFile.GetLong("系统设置", "滑动窗口", m_SysSet.szWND);

	::CreateThread(0,0,ThreadProcCmpp,this,0,0);//移动CMPP2.0
//	::CreateThread(0,0,ThreadProcSmgp,this,0,0);//网通小灵通
//	::CreateThread(0,0,ThreadProcSgip,this,0,0);//联通Sgip
//	::CreateThread(0,0,ThreadProcCngp,this,0,0);//电信
}

unsigned long _stdcall CStart::ThreadProcSmgp(void *lpvoid)
{
	CStart *pThis=(CStart *) lpvoid;
	pThis->RunSmgp ();
	return 0;
}


unsigned long _stdcall CStart::ThreadProcSgip(void *lpvoid)
{
	CStart *pThis=(CStart *) lpvoid;
	pThis->RunSgip ();
	return 0;
}

unsigned long _stdcall CStart::ThreadProcCmpp(void *lpvoid)
{
	CStart *pThis=(CStart *) lpvoid;
	pThis->RunCmpp ();
	return 0;
}

unsigned long _stdcall CStart::ThreadProcCngp(void *lpvoid)
{
	CStart *pThis=(CStart *) lpvoid;
	pThis->RunCngp ();
	return 0;
}

void CStart::RunCmpp()//移动CMPP2.0
{
	Cmmp20_Set m_Cmmp20Set;
	CCmpp20 cmpp;

    cmpp.Startup("127.0.0.1",//"127.0.0.1",
		7890 ,//7890,
		"09555","1234","","","",
		3,/*线程池数*/
		16 ,  /*滑动窗口大小*/
		60,/*发送超时*/
		3,/*重发次数*/
		0,/*OnDeliver*/
		0,/*OnReport*/
		OnSubmitedSMS);
	
	while(1)
	{
		cmpp.OnRecv ();//监听接收消息
		if(!(cmpp.buf[65]=='T'))
			continue;
		
		memset(cmpp.buf,0,512);
		int i=0;
		int timevalue=time(0);//!!!!!!!???
		OnSubmitedSMS(0);//复位操作
		
		
		SUBMIT_SMS *szbuff = new SUBMIT_SMS();
		
		::memset(szbuff,0,sizeof(SUBMIT_SMS));
		int len;
		PK_CMPP20((CMPP_SUBMIT20 *)(szbuff->pkg+ sizeof(CMPP_HEAD20)),
			&len,
			"123456",
			"8888",
			"13999999999",
			"",
			0,
			"01",
			"000000",
			"1001",
			15,
			::strlen("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"),
			"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
		cmpp.OnSubmitSMS(szbuff,len); 
	}
}


void CStart::RunSmgp()//网通小灵通
{
	char szIP[16];//IP地址
	int szPORT=8890;//端口号
	int szTREAD=1;//线程池数
	int szWND=16;//滑动窗口大小
	
	CSmgp smgp;
	smgp.Startup ("127.0.0.1",
	szPORT,
	0,//int login_mode,
	"09555","1234","","","",
	szTREAD,
	szWND,
	60,
	3,
	0,
	0,
	OnSubmitedSMS);
		
	while(1)
	{
		smgp.OnRecv ();//监听接收消息
		//if(!(smgp.buf[65]=='T'))
//			continue;	
//		memset(smgp.buf,0,512);
		int i=0;
		int timevalue=time(0);
		OnSubmitedSMS(0);//复位操作
		
		SUBMIT_SMS *szbuff = new SUBMIT_SMS();
		::memset(szbuff,0,sizeof(SUBMIT_SMS));
		int len;
		
		PK_SMGP((SMGP_SUBMIT *)(szbuff->pkg+ sizeof(SMGP_HEAD)),
			&len,
			//"123456",--char *corpId
			"8888",
			"1399999999",
			"",
			0,//----int subType,6
			"0",
			"01",
			"000000",
			1001,
			::strlen("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"),
			"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
	//	smgp.OnSubmitSMS(szbuff,len); 
	}
}

void CStart::RunSgip()//联通
{
	char szIP[16];//IP地址
	int szPORT=8802;//端口号
	int szTREAD=1;//线程池数
	int szWND=16;//滑动窗口大小

	CSgip sgip;

	sgip.Startup("127.0.0.1",
	szPORT,
	0,//int listenport
	0,//int login_mode,
	"test","test","","","",
	szTREAD,
	szWND,
	60,
	3,
	0,
	0,
	OnSubmitedSMS);
	
	while(1)
	{
		sgip.OnRecv ();//监听接收消息
	//	if(!(sgip.buf[65]=='T'))
	//		continue;
		
	//	memset(sgip.buf,0,512);
		int i=0;
		int timevalue=time(0);//!!!!!!!???
		OnSubmitedSMS(0);//复位操作
		
		
		SUBMIT_SMS *szbuff = new SUBMIT_SMS();
		
		::memset(szbuff,0,sizeof(SUBMIT_SMS));
		int len;
/*		PK_SGIP((SGIP_SUBMIT *)(szbuff->pkg+ sizeof(SGIP_HEAD)),
			&len,
			"123456",
			"8888",
			"13999999999",
			"",
			0,
			"01",
			0,//int moRelatetoMTFla
			"000000",
			"1001",
			15,
			::strlen("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"),
			"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
			0);//char* linkId*/
//		cmpp.OnSubmitSMS(szbuff,len); 
	}
}



void CStart::RunCngp()//电信
{
	char szIP[16];//IP地址
	int szPORT=8890;//端口号
	int szTREAD=1;//线程池数
	int szWND=16;//滑动窗口大小
	
	CCngp Cngp;
/*	Cngp.Startup ("127.0.0.1",
	szPORT,
	0,//int login_mode,
	"09555","1234","","","",
	szTREAD,
	szWND,
	60,
	3,
	0,
	0,
	OnSubmitedSMS);*/
		
//	while(1)
//	{
		Cngp.OnRecv ();//监听接收消息
		//if(!(smgp.buf[65]=='T'))
//			continue;	
//		memset(smgp.buf,0,512);
/*		int i=0;
		int timevalue=time(0);
		OnSubmitedSMS(0);//复位操作
		
		SUBMIT_SMS *szbuff = new SUBMIT_SMS();
		::memset(szbuff,0,sizeof(SUBMIT_SMS));
		int len;
		
		PK_SMGP((SMGP_SUBMIT *)(szbuff->pkg+ sizeof(SMGP_HEAD)),
			&len,
			//"123456",--char *corpId
			"8888",
			"1399999999",
			"",
			0,//----int subType,6
			"0",
			"01",
			"000000",
			1001,
			::strlen("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"),
			"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
	//	smgp.OnSubmitSMS(szbuff,len); 
	}*/
}

⌨️ 快捷键说明

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