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

📄 ~smppbase.~h

📁 SMAL是short message abstract library的缩写,是由风起水流软件工作室(www.zealware.com)开发的一个支持短信网关系统开发的C++底层抽象接口库
💻 ~H
字号:
/**
 *	smppbase.h
 *	
 *	Short Message Abstractive Library.(SMAL)
 *
 *	Copyright 2003-2006	北京风起水流软件工作室
 *	
 *	http://www.zealware.com
 *	
 *	princetoad@gmail.com
 *
 */

#ifndef _SMPP34_SMPPBASE_H
#define _SMPP34_SMPPBASE_H

class TCPSocket;

class CSmpp  
{
public:
	CSmpp();
	virtual ~CSmpp();

	int				m_nSocketTimeout;
	unsigned	long m_nSeq;
	
	/** 使用memcpy拷贝有长度限制的字符串
	*/
	int memcpystr(
		void * dstmem,		///< 目标地址
		const char * srcstr,		///< 原字符串或内存
		int max_length		///< 要拷贝得最大长度
		)
	{
		int length = strlen( srcstr );
		memcpy(dstmem, srcstr, length > max_length ? max_length : length);
		return length > max_length ? max_length : length;
	}

	/**建立连接操作(BIND)
	*/
	int SendBind(
		TCPSocket	* transport,		///< 通道
		unsigned long sequence_id,		///< 流水号
		bool isReceiver,				///< 是否是接收连接
		const char	* system_id,		///< 接口ID
		const char	* password,			///< 密码
		const char	* system_type,		///< 接口类型
		unsigned char interface_version,	///< 接口版本号
		unsigned char ton,				///< 预留
		unsigned char npi,				///< 预留
		const char * address_range		///< 预留
		);

	/** 拆除连接操作(UNBIND)
	*/
	int SendUnbind(
		TCPSocket	* transport, 
		unsigned long nSeqId
		);

	/**
	链路维持消息
	*/
	int SendEnquireLink(
		TCPSocket * transport, 
		unsigned long sequence_id
		);

	int SendEnquireLinkResp(
		TCPSocket * transport, 
		unsigned long command_status,
		unsigned long sequence_id
		);

	/** 提交短信操作(Submit)
	*/
	int SendSubmit(
		TCPSocket			* transport, 
		unsigned long	sequence_id, 
		const char * service_type,				///< 保留,0
		unsigned char source_address_ton,		///< 源地址编码类型
		unsigned char source_address_npi,		///< 源地址编码方案
		const char * source_address,			///< 源地址
		unsigned char dest_address_ton,			///< 目的地址编码类型
		unsigned char dest_address_npi,			///< 目的地址编码方案
		const char * destination_address,		///< 目的地址
		unsigned char esm_class,				///< 短消息类型
		unsigned char protocol_id,				///< GSM协议类型
		unsigned char priority_flag,			///< 优先级
		const char * schedule_delivery_time,	///< 计划下发短消息的时间
		const char * validity_period,			///< 短消息的最后有效期限
		unsigned char registered_delivery_flag, ///< 注册短消息标志
		unsigned char replace_if_present_flag,	///< 替换短消息标志
		unsigned char data_coding,				///< 数据编码方案
		unsigned char sm_default_msg_id,		///< 预定义短消息ID
		unsigned char sm_length,				///< 短消息的长度
		const char * short_message_text			///< 短消息数据内容
		);

	//int SendSubmit(
	//	TCPSocket * transport,
	//	unsigned long sequence_id,
	//	PDU_SMPP_SUBMIT_SM & submit_sm
	//	);

	///**查询发送短信状态(Query)
	//*/
	//int SendQuery(
	//	TCPSocket		* tsClient, 
	//	unsigned long	nSeqId, 
	//	char				* pchTime,
	//	unsigned char uchQueryType, 
	//	char				* pchQueryCode
	//	);

	/** 送交短信应答(Deliver_Resp)
	*/
	int SendDeliverResp(
		TCPSocket		* transport, 
		unsigned long sequence_id, 
		unsigned long command_status,
		const char * message_id
		);

	///**删除短信操作
	//*/
	//int SendCancel(
	//	TCPSocket		* tsClient, 
	//	unsigned long	nSeqId, 
	//	unsigned _int64 nMsgId
	//	);

	///**连接活动测试
	//*/
	//int SendActiveTest(
	//	TCPSocket		* tsClient, 
	//	unsigned long	nSeqId
	//	);

	/** 发送拆除连接应答(UNBindResponse)包
	*/
	int SendUnbindResp(
		TCPSocket	* transport, 
		unsigned long sequence_id,
		unsigned long command_status
		);

	///**发送活动连接测试应答(Active_Test_Response)包
	//*/
	//int SendActiveTestResp(
	//	TCPSocket	* tsClient, 
	//	unsigned long nSeqId
	//	);

	/**递增流水号
	*/
	unsigned long IncreaseSeqId();

	/**
	根据buffer分解deliver_sm消息
	*/
	void ParseDeliverSM(PDU_SMPP_DELIVER_SM & deliver_sm, const char * buffer, int buffer_len);

};

#endif

⌨️ 快捷键说明

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