回 帖 发 新 帖 刷新版面

主题:[转帖]利用VB 实现短消息收发

利用VB 实现短消息收发
摘要:近来,笔者用VB 开发了一套PC 机上的短消息收发软件,本文根据笔者的实际开发经
验整理而得。文中介绍了在计算机上实现短消息收发的模式,重点描述了PDU 模式,包括
PDU 模式下的UCS2 编码、解码原理,以及发送与接收PDU 串的编制方式,在此基础上介绍
了利用VB 中的MSCOMM 控件,实现短消息收发的核心程序。
关键字:短消息收发、PDU 模式、UCS2 编解码、UNICODE 码、AT 指令、MSCOMM 控件
正文:
现在,短消息收发软件得到越发广泛的应用,从政府机关、学校到广大的传媒机构,
直至诸多的企事业单位,颇受使用者欢迎。首先,手机用户的普及为这类软件的出现提供了
可能,而使用这类软件,与人们传统惯用的打电话、发电子邮件等通讯方式相比,有独到的
优点,它能将信息及时送达对方,不会像查收信件(或电邮)存在时间上的延误,也不存在
类似于打电话占线或无人接听之类的烦恼;短消息收发软件可以实现消息收发双方的实时交
互,用它还可以实现消息的群体发送或定时发送等。最近,笔者尝试用VB 来开发一套实现
短消息收发功能的信息系统。至提笔之时,整套系统已经开发完毕。鉴于篇幅的原因,笔者
不可能将整个系统一一尽数,而只能将开发过程中与短消息收发功能相关的一些技术要点和
心得体验与众读者进行分享。
一、短消息收发的实现模式
目前,计算机串口上连接GSM MODEM,用它向手机发送短消息,是比较适合于小型项目
开发的一种实现模式。这种方法要求对AT 指令集和串口编程比较熟悉。在开发过程中笔者
使用的是索尼爱立信公司的GM29 模块。
这种方法收发短消息又分三种模式:BLOCK 模式、TEXT 模式和PDU 模式。BLOCK 模式已
是昔日黄花,现在用的很少了; TEXT 模式则只能发送ASCII 码,它不能发送中文的UNICODE
码——确切地讲,从技术上来说是可以用于发送中文短消息的,但是国内的手机基本上不支
持;而PDU 模式开发起来则较为复杂,它需要编写专门的函数来将文本转换为PDU 格式,但
PDU 模式被所有手机支持,可以使用任何字符集,它也是手机默认的编码方式。笔者在开发
中正是选用的PDU 模式。
二、PDU 模式
用PDU 模式收发短消息可以使用三种编码: 7-bit 编码、8-bit 编码和UCS2 编码。 7-bit
编码用于发送普通的ASCII 字符;8-bit 编码通常用于发送数据消息,如图片或铃声等;UCS2
编码用于发送Unicode 字符。由于笔者在系统中要实现中文短消息的发送,所以选择用UCS2
编码,即中文Unicode 码。
(一)UCS2 编码原理
所谓UCS2 编码,是将单个的字符(1-2 个字节)按ISO/IEC10646 的规定,转变为16 位
的Unicode 宽字符。即将单个的字符转换为由四位的‘0’-‘9’、 ‘A’-‘F’的数字和字
母组成的字符串。待发送的消息以UCS2 码的形式进行发送。
先介绍VB 中的Ascw()和Hex()函数。Ascw()函数用来求出字符串的Unicode 值;Hex()
函数返回表示十六进制数字值的字符串。对这两个函数用例子来说明:
?Ascw("您")
24744
?Hex(24744)
60A8

回复列表 (共57个回复)

51 楼

给我份吧!多谢搂主!!
lightrain108@163.com

52 楼

偶也想要
5233198@163.com

53 楼

楼主把它上传不就行了吗?怎么要给每个人都发一次呢?是不是那个程序很大的啊?如果是的话,那麻烦你发到这里:tanchuhan@21cn.com,谢谢。

54 楼

也给我一份啊,
wollice@163.com

55 楼

偶也要了

帮帮忙 确实需要啊
zhouweiwei12@163.com

56 楼

jzguoys@sohu.com
谢谢

57 楼

3Q ,我的:rainraincn@yeah.net  
再次感谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册