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

📄 constants.h

📁 1、自己编写的遵循SGIP1.1的短信网关模拟程序。仅供测试、学习。 2、该程序只实现了SGIP1.1协议的一部分。
💻 H
📖 第 1 页 / 共 2 页
字号:
					   BYTE AgentFlag,
					   BYTE MorelateoMTFlag,
					   BYTE Priority,
					   CString strExpireTime,
					   CString strScheduleTime,
					   BYTE ReportFlag,
					   BYTE TP_pid,
					   BYTE TP_udhi,
					   BYTE MessageCoding,
					   BYTE MessageType,
					   unsigned long ulMessageLength,
					   CString strMsgContent);
	/*int (*OnSMSSubmitResp)(unsigned long ulTimeID, 
		                    unsigned long ulSgipSerial,
							//unsigned long ulSourceID, 
							int iSubmitResult);
	int (*OnSMSDeliver)(unsigned long ulSgipSerial,
		                 unsigned long ulTimeID,
						 CString strGSMNo,
						 CString strDeliverMsg);
	int (*OnSMSReport)(unsigned long ulSgipSerial,
		                unsigned long ulTimeID,
						CString strGSMNo,
						int iState,
					    int iErrorCode);*/
    public:
	t_INIT_DEF& operator=(const t_INIT_DEF& rv) 
	{
		iLocalLisPort = rv.iLocalLisPort;
		strLocalPwd = rv.strLocalPwd;
		strLocalUserName = rv.strLocalUserName;
//		iCorpID = rv.iCorpID;
		strServerIP = rv.strServerIP;
		strServerPwd = rv.strServerPwd;
		iServerLisPort = rv.iServerLisPort;
		strServerUserName = rv.strServerUserName;
		//lSourceID = rv.lSourceID;
		iSPNumber = rv.iSPNumber;
		OnSMSSubmit = rv.OnSMSSubmit;
		//OnSMSSubmitResp = rv.OnSMSSubmitResp;
		//OnSMSDeliver = rv.OnSMSDeliver;
		//OnSMSReport = rv.OnSMSReport;
		//strFeePhoneNo = rv.strFeePhoneNo;
		return *this;
	}
};


// head
typedef struct 
{
	int Command_length;
	int Command_id;
	SequenceNo Sequence_number;
} t_HEAD_DEF;

// bind
typedef struct
{
	BYTE LoginType;
	char LoginName[16];
	char LoginPassword[16];
	char Reserve[8];
} t_BIND_DEF;

//resp
typedef struct
{
	BYTE Result;
	char Reserve[8];
} t_RESP_DEF;

//submit sm
typedef struct
{
	char SPNumber[21];
	char ChargeNumber[21];
	BYTE UserCount;
	char UserNumber[21];
	char CorpId[5];
	char ServiceType[10];
	BYTE FeeType;
	char FeeValue[6];
	char GivenValue[6];
	BYTE AgentFlag;
	BYTE MorelateoMTFlag;
	BYTE Priority;
	char ExpireTime[16];
	char ScheduleTime[16];
	BYTE ReportFlag;
	BYTE TP_pid;
	BYTE TP_udhi;
	BYTE MessageCoding;
	BYTE MessageType;
	long  MessageLength;
} t_SUBMIT_SM_DEF;

//deliver sm
typedef struct 
{
	char UserNumber[21];
	char SPNumber[21];
	BYTE TP_pid;
	BYTE TP_udhi;
	BYTE MessageCoding;
	char MessageLength[4];
} t_DELIVER_SM_DEF;

//report
typedef struct
{
	SequenceNo SubmitSequenceNumber;
	BYTE ReportType;
	char UserNumber[21];
	BYTE State;
	BYTE ErrorCode;
	char Reserve[8];
} t_REPORT_DEF;

//trace sm
typedef struct
{
	SequenceNo SubmitSequenceNumber;
	char UserNumber[21];
	char Reserve[8];
} t_TRACE_SM_DEF;

//trace sm resp
typedef struct
{
	BYTE Count;
	BYTE Result;
	char NodeId[6];
	char ReceiveTime[16];
	char SendTime[16];
	char Reserve[8];
} t_TRACE_SM_RESP_DEF;

/////////////////////////////////////////////////////////////////////
//for some buffers data


//THE BUFFER DATA OF WAITRESP
//定义作为客户端连接的通道
typedef struct
{
	unsigned long ulSgipSerialNo;//指明该通道被分配给什么序列号的短消息用
	int  iCmdBufNo;//指明占用该通道的命令所在的 Buffer No.
	//当通道被分配时,置1
	//当提交操作有结果时,置0
	int  iStatus;//0:free; 1:being used;
	//当提交结果产生时,then set event.
	HANDLE hSubmit;
	int   iSubmitStatus;//0:not submit 
						//1:submit ok
						//-1:submit fail(包括SP用SEND()发送失败以及SMG返回的失败)
						//-2:submit timeout(submit线程使用:好象都没什么用??)
						//-3:连接已被关闭??
} t_BUFFER_WAITRESP_DEF;


/*struct SMSSubmitResp
{
	unsigned long ulTimeID;
	unsigned long ulSgipSerial;
	//unsigned long ulSourceID;
	int iSubmitResult;
	public:
	SMSSubmitResp& operator=(const SMSSubmitResp& rv) 
	{
		ulTimeID = rv.ulTimeID;
		ulSgipSerial = rv.ulSgipSerial;
		//ulSourceID = rv.ulSourceID;
		iSubmitResult = rv.iSubmitResult;
		return *this;
	}
};

struct SMSDeliver
{
	unsigned long ulSgipSerial;
	unsigned long ulTimeID;
	CString strGSMNo;
	CString strDeliverMsg;
	public:
	SMSDeliver& operator=(const SMSDeliver& rv) 
	{
		ulSgipSerial = rv.ulSgipSerial;
		ulTimeID = rv.ulTimeID;
		strGSMNo = rv.strGSMNo;
		strDeliverMsg = rv.strDeliverMsg;
		return *this;
	}
};

struct SMSReport
{
	unsigned long ulSgipSerial;
	unsigned long ulTimeID;
	CString strGSMNo;
	int iState;
	int iErrorCode;
	public:
	SMSReport& operator=(const SMSReport& rv) 
	{
		ulTimeID = rv.ulTimeID;
		ulSgipSerial = rv.ulSgipSerial;
		strGSMNo = rv.strGSMNo;
		iState = rv.iState;
		iErrorCode = rv.iErrorCode;
		return *this;
	}
};

typedef CList<SMSSubmitResp,SMSSubmitResp&> CSMSSubmitRespList;
typedef CList<SMSDeliver,SMSDeliver&> CSMSDeliverList;
typedef CList<SMSReport,SMSReport&> CSMSReportList;
*/
struct SMSSubmit
{
	unsigned long ulTimeID;
	unsigned long ulSgipSerial;
	CString strSpNumber;
	BYTE UserCount;
	CString strUserNumber;
	CString strCorpID;
	CString strServiceType;
	BYTE FeeType;
	CString strFeeValue;
	CString strGivenValue;
	BYTE AgentFlag;
	BYTE MorelateoMTFlag;
	BYTE Priority;
	CString strExpireTime;
	CString strScheduleTime;
	BYTE ReportFlag;
	BYTE TP_pid;
	BYTE TP_udhi;
	BYTE MessageCoding;
	BYTE MessageType;
	unsigned long ulMessageLength;
	CString strMsgContent;
	public:
	SMSSubmit& operator=(const SMSSubmit& rv) 
	{
		ulTimeID = rv.ulTimeID;
		ulSgipSerial = rv.ulSgipSerial;
		strSpNumber = rv.strSpNumber;
		UserCount = rv.UserCount;
		strUserNumber = rv.strUserNumber;
		strCorpID = rv.strCorpID;
		strServiceType = rv.strServiceType;
		FeeType = rv.FeeType;
		strFeeValue = rv.strFeeValue;
		strGivenValue = rv.strGivenValue;
		AgentFlag = rv.AgentFlag;
		MorelateoMTFlag = rv.MorelateoMTFlag;
		Priority = rv.Priority;
		strExpireTime = rv.strExpireTime;
		strScheduleTime = rv.strScheduleTime;
		ReportFlag = rv.ReportFlag;
		TP_pid = rv.TP_pid;
		TP_udhi = rv.TP_udhi;
		MessageCoding = rv.MessageCoding;
		MessageType = rv.MessageType;
		ulMessageLength = rv.ulMessageLength;
		strMsgContent = rv.strMsgContent;
		return *this;
	}
};

typedef CList<SMSSubmit,SMSSubmit&> CSMSSubmitList;
////////////////////////////////////////////////////////////////////
//*****************************************************************
//some function

#endif

⌨️ 快捷键说明

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