📄 ~smppbase.~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 + -