短信网关协议(cmpp、sgip、smgp、smpp)长短信开发要点

本文介绍了cmpp、sgip、smgp和smpp四种短信协议发送长短信的方法。长短信需在内容前添加特定头部,如cmpp、sgip设置TP_pid和TP_udhi,smgp则需用TLV格式。详细步骤和示例代码帮助理解实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

短信网关协议长短信开发要点

本文本简单介绍cmpp(移动)、sgip(联通)、smgp(电信行业网关)、smpp等种短信协议如何发送长短信。
长短信是指短信内容超过70个字(汉字)的短信,拆分成67个字(汉字)然后提交到短信网关。

cmpp,sgip,smgp如何发送长短信

1,三种协议都需要在短信的内容头部增加6个字节的内容,格式如下:
msgHeader[0]=5;
msgHeader[1]=0;
msgHeader[2]=3;
msgHeader[3]=tp_udhiHead;//从0开始,依次增加,最大256,同一条长短信该值相同
msgHeader[4]=Pk_total;//按67字拆分后总条数
msgHeader[5]=j;//第几条,从1开始

2,针对cmpp和sgip,把TP_pid设置为0,TP_udhi设置为1即可。

3,针对smgp,TP_udhi设置为1,TP_pid设置为0,但需要把这两个值以TLV的格式增加到短信内容后面。
TLV格式:T表示类型,长度2字节;L表示内容的长度,长度2字节;V表示内容,长度由L决定。
设置TP_pid时,T值为1,L值为1,V值为0
设置TP_udhi时,T值为2,L值为1,V值为1

//示例代码,其中ptr指向消息buffer
short tpPidTag = htons(0x0001);
memcpy(ptr,&(tpPidTag),2);
ptr +=2;
short tpPidTagLen = htons(1);
memcpy(ptr,&(tpPidTagLen),2);
ptr +=2;
unsigned char tpPidTagVal = 0;
memcpy(ptr,&(tpPidTagVal),1);
ptr +=1;
short tpUdhiTag = htons(0x0002);
memcpy(ptr,&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值