短信中VB.NET编码PDU(一)

PDU的编码器的工作原理是解码器的逆过程。根据需要编码器只需要编码发送的PDU代码,工作相对简单。本文讲解编码思路,具体代码请参考Blog中PDUEncoder部分

我把PDU的编码分为两部分,SMS和EMS。EMS部分我只提供了ConcatenatedShortMessage的编码器。这是超长短信的编码,用得最多。

SMS编码

编码一个SMS一般需要如下的信息:

TP_Data_Coding_Scheme TP_UD编码方式

TP_Destination_Address 对方号码

TP_Message_Reference 参考号码

TP_Status_Report_Request 状态报告

TP_User_Data 用户信息

TP_Validity_Priod 有效期

ServiceCenterNumber 短信中心号码

所以在编码器中存在以上的属性,并在Set中加入了处理代码,将可读信息转换成对应的十六进制信息。

特别注意的是TP_User_Data属性,它可以根据用户数据编码自动设置TP_UDL。对于纯英文编码,TP_UDL为所有的字符数;对于Unicode编码,由于一个字符由两个字节表示,TP_UDL为所有的字符数*2。注意检查TP_User_Data的长度,对于SMS来说编码后的TP_UD长度不能超过140字节。也就是说英文160个字符(140/7*8),中文70个字符。

对于TP_UD的编码在解码器中也有说明,在此不再赘述。

我还设计了几个枚举变量:

ENUM_TP_DCS 编码方式

ENUM_TP_SRI 状态报告

ENUM_TP_VALID_PERIOD 有效期

ENUM_TP_VPF 有效期格式

这些枚举变量可以简化输入,也利于日后扩充。

当以上内容设置好以后,基本上一个短信的架子就出来了。此时调用GetSMSPDUCode进行组合,简单的把十六进制拼接起来就形成了一个完整的PDU代码。

转自bbs.sendsms.cn

时间: 2024-10-07 06:07:01

短信中VB.NET编码PDU(一)的相关文章

解决:People下面选择分享可见联系人,选择多个联系人后通过短信分享,短信中只显示一个联系人

问题描述: [操作步骤]:People下导入导出中选择分享可见联系人,选择多个联系人后通过短信分享 [测试结果]:短信中只能显示一个联系人 [预期结果]:可以显示多个联系人 经过代码分析,从compose_message_activitu.xml中的ViewStub进行定位到现实联系人名片的视图: <ViewStub android:id="@+id/vcard_attachment_view_stub" android:layout="@layout/vcard_at

java:使用正则提取字符串中的数字(例如提取短信中的验证码)

使用java正则可以很方便的从字符串中提取符合条件的内容. 1.提取字符串中所有的手机号: private void getPhoneNum(String smsBody) { Pattern pattern = Pattern.compile("(13|14|15|18)\\d{9}"); Matcher matcher = pattern.matcher(smsBody); while (matcher.find()) { System.out.println(matcher.gr

从一千万条短信中找出重复次数最多的前10条

题目:      有1千万条短信,有重复,以文本文件的形式保存,一行一条.请用5分钟时间,找出重复出现最多的前10条. struct TNode { BYTE* pText; //直接指向文件映射的内存地址 DWORD dwCount; //计算器,记录此节点的相同短信数 TNode* ChildNodes[256]; //子节点数据,由于一个字母的ASCII值不可能超过256,所以子节点也不可能超过256 TNode() { //初始化成员 } ~TNode() { //释放资源 } }; /

营销短信中的链接为什么能那么短?推荐一个适合短信营销使用的短链接接口

在推广中,尤其是电商行业以及APP行业中总是离不开成本低.获益大的短信营销.然而在短信营销中,有胆加短信链接的商家可是不多的哦,有胆的总是那些有短链接的而且识别度比较高的网址链接,因为短信链接常有的虚假信息让一众人群望而生畏. 如果您的链接不知名且还特别长,那么想要利用短信在手机端上达到信息推送营销闭环,不可缺少的一环就是链接,还必须是短链接.今日小编为您讲讲在线生成短链接的方式,且看下文:: 1.  百度短网址 百度短网址是需要大站才能申请,后来变成了都可以但需要2个小时的审核时间,现在是即时

SMS短信PDU编码

目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式.使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信:而PDU模式不仅支持中文短信,也能发送英文短信.PDU模式收发短信可以使用3种编码:7-bit.8-bit和UCS2编码.7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符.一般的PDU编码由A B C D E F G H I J K L M十三项组成

中文短信编码(一)

目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式.使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信:而PDU模式不仅支持中文短信, 也能发送英文短信.PDU模式收发短信可以使用3种编码:7-bit.8-bit和UCS2编码.7-bit编码用于发送普通的ASCII字符,8- bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符.一般的PDU编码由A B C D E F G H I J K L M十三项

短信文本pdu模式解析

来源于互联网 年代较长 如有侵犯 请联系删除 text模式主要发送字符集(有限的),不能用来发送中文,但是hex moder可以发送所有字符. pdu moder被所有手机支持,主要分为7bit 8bit ucs2 . 7bit 用于普通字符集  8 bit 用来发送短消息-图片铃声,ucs2 用来发送uincode 改变吗就是将单个字符转换为由0-9  a-f pdu里面会包含发送方电话地址 共有三种方式来发送和接收SMS信息:Block Mode, Text Mode和PDU Mode.其中

Android4.4 往短信收件箱中插入自定义短信(伪造短信)

这段时间稍微有点空闲,把前一段学习Android做过的一些小项目整理整理.虽然没有什么工程量很大的项目,但是对于一个新手,解决这些问题还是花了一段时间.感觉还是非常有记录的意义呢~~~么么哒*—* 今天要说明的这个项目,是要在Android手机里伪造一条短信,也就是在短信箱中插入一条自定义的短信,看上去就像自己的手机里收到了新的信息,但其实这并不是一条通过通信运营商的网络发过来的信息,这是一条假的信息. 在Android4.4之前的版本,往短信箱插入信息很方便,所以这个对用户来说很有威胁的漏洞,

将安卓手机短信导入到iPhone6 plus中

不越狱的情况下短信不能直接同步到iphone手机,视频.图片.联系人可以直接使用itools的手机搬家功能超方便从android到iphone中.短信得变通的处理才能导入. 工具: 安卓手机iPhone手机电脑itools软件 方法/步骤 使用itools将安卓手机的短信导出,为XXX.CSV格式的文件.   使用itunes创建一个本地的备份,使用itools打开itunes备份管理   双击进入短信,双击打开sms.db文件 4 选择导入csv文件,将上面导出的文件,导入到itunes备份管