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

📄 datadef.h

📁 能够实现联通和移动短消息群发的软件
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////////
//文件名:  DataDef.h
//功能:    平台通信接口模块的数据类型定义
//创建人:  杨祖明
//创建时间:2001-9-11
//修改人:  杨祖明
//修改时间:2001-10-18
////////////////////////////////////////////////////////////////////////////////////

#ifndef _DATA_DEF_H_
#define _DATA_DEF_H_

///配置文件的信息SMSCINFO结构

struct STRUCT_APPLOGIN_INFO
{
	char	szAppName[16];
	char	szPassword[16];
	WORD	wAppID;

	STRUCT_APPLOGIN_INFO()
	{
		ZeroMemory(this,sizeof(STRUCT_APPLOGIN_INFO));
	}
};

//系统模块连接参数配置[CLIENTINFO]
struct STRUCT_SERVER_INFO
{
	char   szIP[50];//平台IP
	short  nPort;	//平台开放的端口
	STRUCT_SERVER_INFO()//构造函数
	{
		ZeroMemory(this,sizeof(STRUCT_SERVER_INFO));//把缓冲区都置为0
	}
};

//应用属性
typedef struct tagSTRUCT_APP_INFO
{
	char szAppName[16]; 				//应用名称
	char szPwd[16];						//密码
	WORD wAppID;                        //APP ID
	char szService_ID[10];              //Service ID
	unsigned short   nPacket;           //应用包头
}STRUCT_APP_INFO;

////////////////////////////////////////////////////////////////////////////////////////////
//CMPP命令数据结构定义
//CMPP协议版本号:CMPP1.2 (2001.06.12)

//消息头结构
struct STRUCT_CMPP12_MSG_HEADER
{
	DWORD	dwTotal_Length;		//4消息总长度
	DWORD	dwCommand_ID;		//4命令或响应类型
	DWORD	dwSequence_ID;		//4消息流水号			

	STRUCT_CMPP12_MSG_HEADER()
	{
		ZeroMemory(this,sizeof(STRUCT_CMPP12_MSG_HEADER));
	}
};

//短信提交数据包结构
struct STRUCT_CMPP12_SUBMIT
{
	STRUCT_CMPP12_MSG_HEADER sHeader;	//CMPP12包头
	__int64	n64Msg_ID;					//信息标识
	BYTE	cPk_total;					//1相同Msg_ID的消息总数
	BYTE	cPk_number;					//1相同Msg_ID的消息序号
	BYTE	cRegistered_Delivery;		//1是否返回确认状态报告
	BYTE	cMsg_Level;					//1消息优先级别
	char	szService_ID[10];			//业务类型
	BYTE	cFee_UserType;				//计费用户类型
	char	szFee_terminal_ID[21];		//被计费用户号码
	BYTE	cTP_pid;					//GSM协议类型,GSM3.40中的9.2.3.9
	BYTE	cTP_udhi;					//GSM协议类型,GSM3.40中的9.2.3.23
	BYTE	cMsg_Fmt;					//1消息格式
	char	szMsg_src[6];				//信息内容来源
	char	szFeeType[2];				//资费类别
	char	szFeeCode[6];				//资费代码
	char	szValid_Time[17];			//存活有效期
	char	szAt_Time[17];				//定时发送时间
	char	szSrc_terminal_id[21];		//源终端MSISDN号码
	BYTE	cDestUsr_tl;				//1接受消息的用户数量(<100)
	char	szDest_terminal_ids[21];	//接受业务的MSISDN号码

	//以下两个字段不是标准CMPP12协议,由森泰克平台小组共同协商更改
	WORD	wMsg_Length;				//消息长度(<512个字节)
	char	szMsg_Content[512];			//消息内容

	char	szReserve[8];				//保留

	STRUCT_CMPP12_SUBMIT()
	{
		ZeroMemory(this,sizeof(STRUCT_CMPP12_SUBMIT));
	}
};

//提交短信回应消息包结构
struct STRUCT_CMPP12_SUBMIT_REP
{
	STRUCT_CMPP12_MSG_HEADER       sHeader;       //12数据包头
	__int64					Msg_ID;				  //8消息标识
	unsigned char			Result;				  //1结果
	STRUCT_CMPP12_SUBMIT_REP()
	{
		ZeroMemory(this,sizeof(STRUCT_CMPP12_SUBMIT_REP));
	}
};

//网关下发短消息数据包结构
struct STRUCT_CMPP12_DELIVERY
{   
	
	STRUCT_CMPP12_MSG_HEADER sHeader;	//CMPP12包头
	__int64	n64Msg_ID;					//信息标识 8位
	char	szDestinationID[21];		//消息标识
	char    szService_ID[10];           //service id
	BYTE	cTP_Pid;					//GSM协议类型,GSM3.40中的9.2.3.9
	BYTE	cTP_Udhi;					//GSM协议类型,GSM3.40中的9.2.3.23
	BYTE	cMsg_Fmt;					//1消息格式
	char	szSrc_terminalID[21];		//源终端MSISDN号码
	BYTE	cRegistered_Delivery;		//1是否返回确认状态报告

	//以下两个字段不是标准CMPP12协议,由森泰克平台小组共同协商更改
	WORD	wMsg_Length;				//1消息长度
	char	Msg_Content[512];			//消息内容

	char	Reserve[8];					//保留

	STRUCT_CMPP12_DELIVERY()
	{
		ZeroMemory(this,sizeof(STRUCT_CMPP12_DELIVERY));
	}
};

//回应网管下发短消息结构
typedef struct STRUCT_CMPP12_DELIVER_REPTag
{
	STRUCT_CMPP12_MSG_HEADER          sHeader;             //数据包头
	__int64					Msg_ID;				//8消息标识
	unsigned char			Result;				//1结果   0:正确
}STRUCT_CMPP12_DELIVER_REP;

//连接数据包结构
struct STRUCT_CMPP12_CONNECT
{
	STRUCT_CMPP12_MSG_HEADER          sHeader;              //数据包头
	char					Source_Addr[6];		  //ICP_ID;
	char					AuthenticatorICP[16]; //ICP 认证码;
	unsigned char           Version;              //双方协商的版本号
	DWORD                   Timestamp;            //时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒,10位,右对齐
	STRUCT_CMPP12_CONNECT()
	{
		ZeroMemory(this,sizeof(STRUCT_CMPP12_CONNECT));
	}
};

//连接回应数据包结构
struct STRUCT_CMPP12_CONNECT_REP
{
	STRUCT_CMPP12_MSG_HEADER          sHeader;              //数据包头
	unsigned char			Status;				  //1字节Integer状态
	char					AuthenticatorISMG[16];//ISMG认证码
	unsigned char           Version;              //服务器支持的最高版本号
	STRUCT_CMPP12_CONNECT_REP()
	{
		ZeroMemory(this,sizeof(STRUCT_CMPP12_CONNECT_REP));
	}
};

//短信查询消息结构
typedef struct STRUCT_CMPP12_QUERYTag
{
	STRUCT_CMPP12_MSG_HEADER          sHeader;              //数据包头
	char					Time[8];			  //时间(精确到日)
	unsigned char			Query_Type;			  //1查询类型			
	char					Query_Code[10];		  //查询码(业务类型)
	char					Reserve[8];			  //保留
}STRUCT_CMPP12_QUERY;

//短信查询回应消息结构(短信查询结果)
typedef struct STRUCT_CMPP12_QUERY_REPTag
{
	STRUCT_CMPP12_MSG_HEADER          sHeader;              //数据包头
	char					Time[8];			  //时间(精确到日)
	unsigned char			Query_Type;			  //1查询类别  0:总数查询1:按业务代码查询 			
	char					Query_Code[10];		  //查询码(业务类型)
	unsigned long			MT_TlMsg;			  //4从SP接收信息总数
	unsigned long			MT_Tlusr;			  //4从SP接收用户总数
	unsigned long			MT_Scs;				  //4成功转发数量
	unsigned long			MT_WT;				  //4待转发数量
	unsigned long			MT_FL;				  //4转发失败数量
	unsigned long			MO_Scs;				  //4向SP成功送达数量
	unsigned long			MO_WT;				  //4向SP待送达数量
	unsigned long			MO_FL;				  //4向SP失败送达数量
}STRUCT_CMPP12_QUERY_REP;

//CENTEK 平台内部通信协议 UNIDATA 消息数据结构
///////////////////////////////////////////////////////////////////////////////////
//森泰克平台数据包结构定义
///////////////////////////////////////////////////////////////////////////////////

//消息头
typedef struct STRUCT_CTKP_MSG_HEADER
{
	DWORD dwTotalLen;					//总长
	DWORD dwCommandId;					//命令ID
	DWORD dwSeqNo;						//消息流水号
	DWORD dwStatus;						//命令执行状态

	STRUCT_CTKP_MSG_HEADER()
	{
		ZeroMemory(this,sizeof(STRUCT_CTKP_MSG_HEADER));
	}
}STRUCT_CTKP_MSG_HEADER, *PSTRUCT_CTKP_MSG_HEADER;

//MSGID消息结构
struct STRUCT_MSGID
{
	BYTE	cMsgID_Type;				//MsgID类型
	BYTE	cMsgID_Length;				//MsgID长度
	char	szMsgID[64];				//MsgID内容

	STRUCT_MSGID()
	{
		ZeroMemory(this,sizeof(STRUCT_MSGID));
	}
};

//连接请求数据包
struct STRUCT_CONNECT		//CTKP_CONNECT
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	WORD	wAppID;						//应用ID
	char	szAppName[16];				//应用名称
	char	szPassword[16];				//密码
	DWORD	dwVersion;					//接口版本号

	STRUCT_CONNECT()
	{
		ZeroMemory(this,sizeof(STRUCT_CONNECT));
	}
};

//连接请求应答数据包
struct STRUCT_CONNECT_RSP				//CTKP_CONNECT_RSP
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	//此结构的消息体为空
};

//手机上发数据包包头
typedef struct STRUCT_DELIVERY_HEADER
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	WORD	wAppID;						//应用ID
	BYTE	cReDelivery_Count;			//重发计数
	BYTE	cTNO;						//电信网络运营商
	BYTE	cChannel_Protocol;			//通道协议类型
	BYTE	cService_ChannelID;			//服务通道ID
	char	szService_Number[6];		//服务通道的特服号
	BYTE	cOriginate_Plat;			//发起平台ID
	BYTE	cService_Plat;				//服务平台ID
	BYTE	cProtocol_Type;				//数据包协议类型
	WORD	wProtocol_Length;			//数据包长度

	STRUCT_DELIVERY_HEADER()
	{
		ZeroMemory(this,sizeof(STRUCT_DELIVERY_HEADER));
	}
}STRUCT_DELIVERY_HEADER, *PSTRUCT_DELIVERY_HEADER;

//手机上发数据包
struct STRUCT_DELIVERY
{
	STRUCT_DELIVERY_HEADER	sDeliveryHeader;	//手机上发数据包包头
	STRUCT_CMPP12_DELIVERY	sCMPP12Delivery;	//CMPP12_DELIVERY包

	STRUCT_DELIVERY()
	{
		ZeroMemory(this,sizeof(STRUCT_DELIVERY));
	}
};

//应用平台向应用发送的状态报告
struct STRUCT_MSG_REPORT
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	WORD	wAppID;
	DWORD   dwPlat_MsgID;
	BYTE	cTNO;						//电信网络运营商
	BYTE	cChannel_Protocol;			//通道协议类型
	BYTE	cService_ChannelID;			//服务通道ID
	char	szService_Number[6];		//服务通道的特服号
	BYTE	cService_Plat;				//服务平台ID
	BYTE	cRequest_Plat;				//请求平台ID

	STRUCT_MSG_REPORT()
	{
		ZeroMemory(this,sizeof(STRUCT_MSG_REPORT));
	}
};

//应用向应用平台提交短消息包头
struct STRUCT_SUBMIT_HEADER
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	WORD	wAppID;						//应用ID
	BYTE	cReSubmit_Count;			//重发计数
	BYTE	cTNO;						//电信网络运营商
	BYTE	cChannel_Protocol;			//通道协议类型
	BYTE	cService_ChannelID;			//服务通道ID
	char	szService_Number[6];		//服务通道的特服号
	BYTE	cService_Plat;				//服务平台ID
	BYTE	cRequest_Plat;				//请求平台ID
	BYTE	cPriority_Flag;				//优先级标志
	BYTE	cTimeOut;					//超时时间间隔(以10秒为单位)
	BYTE	cCredibility_Transmit;		//可靠性传输标志
	BYTE	cSaveForTramSmit;			//存储转发标志
	BYTE	cProtocol_Type;				//数据包协议类型
	WORD	wProtocol_Length;			//数据包长度

	STRUCT_SUBMIT_HEADER()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMIT_HEADER));
	}
};

struct STRUCT_SUBMIT					//CTKP_SUBMIT
{
	STRUCT_SUBMIT_HEADER	sSubmitHeader;	//应用向应用平台提交短消息包头
	STRUCT_CMPP12_SUBMIT	sCMPP12Submit;	//CMPP12包包体

	STRUCT_SUBMIT()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMIT));
	}
};

//应用平台向应用回应接收信息
struct STRUCT_SUBMIT_RSP				//CTKP_SUBMIT_RSP
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	WORD	dwAppID;					//应用ID
	DWORD	dwPlat_MsgID;				//应用平台的MsgID

	STRUCT_SUBMIT_RSP()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMIT_RSP));
	}
};

//应用接收SUBMIT_RSP或MSG_REPORT后的回应信息
struct STRUCT_RECV_CONFIRM				//CTKP_RECV_CONFIRM
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	WORD	wAppID;
	BYTE	cConfirm_Flag;				//是收到SUBMIT_RSP还是MSG_REPORT的回应

	STRUCT_RECV_CONFIRM()
	{
		ZeroMemory(this,sizeof(STRUCT_RECV_CONFIRM));
	}
};

//通讯模块回应应用平台提交短信消息
typedef struct STRUCT_UNIDATA_ACK				//CTKP_UNIDATA_ACK
{
	STRUCT_CTKP_MSG_HEADER	sHeader;	//消息头
	WORD	wAppID;						//应用ID
	BYTE	cTNO;						//电信网络运营商
	BYTE	cChannel_Protocol;			//通道协议类型
	BYTE	cService_ChannelID;			//服务通道ID
	char	szService_Number[6];		//服务通道的特服号
	BYTE	cService_Plat;				//服务平台ID
	BYTE	cRequest_Plat;				//请求平台ID

	STRUCT_MSGID			sMsgID;		//MsgID结构

	STRUCT_UNIDATA_ACK()
	{
		ZeroMemory(this,sizeof(STRUCT_UNIDATA_ACK));
	}
}STRUCT_UNIDATA_ACK,*PSTRUCT_UNIDATA_ACK;

//源应用向目的应用发送消息
struct STRUCT_TOAPP_IND					//CTKP_TOAPP_IND
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	WORD	wSrc_AppID;					//发送方的应用ID
	WORD	wDest_AppID;				//接收方的应用ID
	WORD	wData_Coding;				//数据编码方案0-英文 1-PDU编码 2-Unicode
	WORD	wMsg_Length;				//信息长度
	char Message[320];					//消息内容

	STRUCT_TOAPP_IND()
	{
		ZeroMemory(this,sizeof(STRUCT_TOAPP_IND));
	}
};

//目的应用回应源应用的消息
struct STRUCT_TOAPP_RSP					//CTKP_TOAPP_RSP
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	WORD	wRsp_AppID;					//回应方的应用ID
	WORD	wInd_AppID;					//发送方的应用ID

	STRUCT_TOAPP_RSP()
	{
		ZeroMemory(this,sizeof(STRUCT_TOAPP_RSP));
	}
};

//平台向网关查询一条消息的状态
struct STRUCT_QUERY						//CTKP_QUERY
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	BYTE    cService_Plat;				//服务平台ID号
	BYTE    cRequest_Plat;              //请求平台ID号
	BYTE    cTno;                       //电信运营商
    BYTE    cChannelID;					//通道ID
	STRUCT_MSGID			sMsgID;		//MsgID结构

	STRUCT_QUERY()
	{
		ZeroMemory(this,sizeof(STRUCT_QUERY));
	}
};

//应用平台回应应用一条消息的状态
struct STRUCT_QUERY_RSP					//CTKP_QUERY_RSP
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	BYTE    cService_Plat;				//服务平台ID号
	BYTE    cRequest_Plat;              //请求平台ID号
};

//连接测试消息
struct STRUCT_LINKTEST					//CTKP_LINKTEST
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//连接测试应答消息
struct STRUCT_LINKTEST_RSP				//CTKP_LINKTEST_RSP
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//断开请求消息
struct STRUCT_DISC						//CTKP_DISC
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//断开请求应答消息
struct STRUCT_DISC_RSP					//CTKP_DISC_RSP
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	//此结构的消息体为空
};

//应用平台向应用发送错误描述信息
struct STRUCT_ERROR_REPORT				//CTKP_ERROR_REPORT
{
	STRUCT_CTKP_MSG_HEADER sHeader;		//消息头
	WORD    wAppID;                     //应用ID
	char	szError_Msg[40];			//错误描述信息

	STRUCT_ERROR_REPORT()
	{
		ZeroMemory(this,sizeof(STRUCT_ERROR_REPORT));
	}
};
struct STRUCT_SUBMIT_QUEUE
{
	DWORD	dwSeqID;
	BYTE	cTimeOut;
	STRUCT_SUBMIT sSubmit;
	STRUCT_SUBMIT_QUEUE()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMIT_QUEUE));
	}
};
struct STRUCT_SUBMITRSP_QUEUE
{
	DWORD	dwPlatID;
	BYTE	cTimeOutLeave;
	STRUCT_SUBMIT sSubmit;
	STRUCT_SUBMITRSP_QUEUE()
	{
		ZeroMemory(this,sizeof(STRUCT_SUBMITRSP_QUEUE));
	}
};

#endif//_DATA_DEF_H_

⌨️ 快捷键说明

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