短信的两种模式(转载)

短信的两种模式: TXT(1)PDU(0)

LengthPDU= LengthSMSC+ LengthTPDU

 

SMSC     : Short Message Service Center 短信息服务中心

 

举例01:

08 91 683108501505F0 11 00 0B 81 3106656930F1 0000A7 0BE8329BFD06DDDF723619

 

子段

子段值

子段的解释

01

08

短信息中心地址长度,长度的单位是Byte,它等于前面三个子段的总字节数(0203长度字节数加1)。

02

91

短信息中心号码类型,91TON/NPITON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还可有其他数值,但91最常用。

03

683108501505F0

短信息号码,是所使用的服务中心地址。由于位置上略有处理,实际号码应为:                8613805515500(字母F意指长度减1),这是作者所在地GSM短信息中心的号码。

04

11

文件头字节(header byte,是一种bitmask)。这里11指正常地发送短信息。

05

00

信息类型。

06

0B

被叫号码长度(11位长度)。

07

81

被叫号码类型

08

3106656930F1

被叫号码,也经过了移位处理,实际号码为13605696031

08

0000A7

短信息编码类型GSM Default Alphabet,如为中文则是000010

10

0B

短信息长度。(编码以前的长度11???)

11

E8329BFD06DDDF723619

短信息内容“Hello World!”

 

举例02—读取SMS:

0891683108100005F0040D91683119111797F6000040609260452223037ABD19

08 91 683108100005F0 04 0D 91 683119111797F6 0000406092 60452223 037ABD19

08 91 683108100005F0 040D91 683119111797F6 0000 406092 60452223 03 7ABD19

z             7a                                0111 1010  è 0111 1010 è7A

z             7a                                0111 1010  è 1011 1101 èBD

f             66                                0110 0110  è 0001 1001 è19

 

子段

子段值

子段的解释

01

08

短信息中心地址长度,长度的单位是Byte,它等于前面三个子段的总字节数(0203长度字节数加1)。

02

91

短信息中心号码类型,91TON/NPITON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还可有其他数值,但91最常用。

03

683108501505F0

短信息号码,是所使用的服务中心地址。由于位置上略有处理,实际号码应为:                8613805515500(字母F意指长度减1),这是作者所在地GSM短信息中心的号码。

04

04

TPDU中的第一个字节。

04No moew messages are waiting for MS in this SC表示短信息服务中心没有

05

0D 91 683119111797F6

信息类型。

06

00

TP-PIDTP-Protocol-Identifier

 

07

00

TP-DCSTP-Data-Coding-Schema

 

08

406092 60452223

040629 06542232

"04/06/29,06:54:22+32"

09

03

TP-UDLTP-User-Data-Length

10

7ABD19

TP-UDTP-User Data

7ABD19è经过解码后为“zzf

 

 

 

 

 

 

 

Send

08 91 683108501505F0 11 00 0B 81 3106656930F1 0000A7 0BE8329BFD06DDDF723619

 

Receive

0891683108100005F0040D91683119111797F6000040609260452223037ABD19

08 91 683108100005F0 04 0D 91 683119111797F6 0000406092 60452223 037ABD19

 

新的发送短信息

08 91 683108100005F0 11 00 0B 81 3119111797F6 0000A7 0BE8329BFD06DDDF723619

0891683108100005F011000B813119111797F60000A70BE8329BFD06DDDF723619

 

13911171796F

3119111797F6

 

 

 

08:

短信息中心地址长度

91:

短信息中心号码类型,91TON/NPITON/NPI遵守International/E.164标准,       指在号码前需加‘+’号;此外还可有其他数值,但91最常用。

683108100005F0

短信息号码,是所使用的服务中心地址。由于位置上略有处理,实际号码应为:                8613800100500(字母F意指长度减1),这是作者所在地GSM短信息中心的号码。

 

 

 

OK

AT+CMGF=1

OK

AT+CMGR=2

+CMGR: "REC READ","+8613911171796",,"04/06/29,06:54:22+32" zzf

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
策略模式是一种行为设计模式,它可以用于根据不同的情况选择不同的算法或策略。对于短信发送失败的情况,你可以使用策略模式来选择不同的处理方式。 首先,你可以创建一个策略接口,例如 `ISendStrategy`,其中包含一个发送短信的方法 `sendSMS`。 然后,你可以实现多个具体的策略类,例如 `ResendStrategy`、`LogStrategy` 和 `NotifyStrategy`,它们分别代表了不同的处理方式。这些策略类都需要实现 `ISendStrategy` 接口,并实现其 `sendSMS` 方法。 接下来,在发送短信的代码中,你可以根据发送失败的情况选择不同的策略。例如,如果发送失败,你可以选择使用 `ResendStrategy` 来重新发送短信;如果发送失败次数超过一定阈值,你可以选择使用 `LogStrategy` 来记录日志;如果发送失败是临时性的问题,你可以选择使用 `NotifyStrategy` 来通知管理员。 最后,你可以通过一个上下文类来管理策略的选择和调用。这个上下文类包含一个成员变量用于存储当前选择的策略对象,以及一个方法用于执行发送短信的操作。在发送短信的方法中,你可以根据具体情况选择不同的策略,并调用策略对象的 `sendSMS` 方法来完成短信发送。 使用策略模式可以使得你的代码更加灵活和可扩展,可以根据不同的需求选择不同的处理方式,而无需修改原有的发送短信的代码逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值