使用AT中的PDU模式收发短信问题!!!高分求助!!! pdu 就是协议数据单元,自已看gsm的sms协议,看SMS_SUBMIT的pdu的定义,然后用对应的AT指令发给手机。取新的短信可以从手机或卡中读取信息就行了。很久以前做过一个5110的程序,现在都记不太清了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 发送短信息格式:AT+CMGF=0 (发中文的方式,=1时能直接发送英文字母)以下例子 发送到 13603021052(号码要重新编码3106031250F2两位两位一颠倒,‘F’为补位) 报文是 你好 译码为 044F60597D 04 长度 数据 4f60597d 汉字内码(在VB中使用Unicode码) at 命令 AT+CMGS=019(发送的总长度) (回车)返回>发送 0011000D91683106031250F2000801044F60597D 发送符以ctrl_c做为发送终止符,然后回车,完成发送. “0011000D91683106031250F2000801044F60597D”究竟是怎么生成的?还没有弄清楚! “0011000D91683106031250F2000801044F60597D”解释一下:0011000D9168 :是pdu的标志头(我这样说它)3106031250F2 :是对方的号码000801 :中80是发送中文的标志044F60597D :是发送内容,其中04是发送的长度,一个中文是两个长度每次发送的总长度为15(是固定的值)+(发送内容的长度)关于这个字串的生成是这样:MSComm1.Output = "AT+CMGF=0" & Chr(13)MSComm1.Output = "AT+CGMS=" & CStr(15 + strlen) & Chr(13)& "0011000D9168" & str_phone & "000801" & CStr(Hex$(strlen)) & sendmsg & Chr(26)就可以了 str_phone : 是手机号码strlen :是发送的长度sendmsg :是发送的内容(unicode码,VB可以自己转换,用strconv) http://www.d1vb.com上万个VB朋友都注册了,50000条记录就是人气的象征!几千个代码和文章是你急需的。我是版主和站长,欢迎您的光顾!我们会尽最大努力帮助你。 可以看帮助,或者去微软的站看msdn,什么都有,要会用msdn,很好的东西,努力吧! 在vb60下用不到strconv函数,vb60下的字符串全是unicode编码 哦我现在已经解决了所有的技术问题,现在说说,如何在WEB上发送短信息的设计思路.切磋.切磋.切磋.见笑简单的说,需要的工作分为:1\做一个守护程序,在服务器上我们称为sms-service,他的任务从WEB服务器的一个特定的目录中定时检查,是否有数据文件生成.2\当发现有数据文件,就将他的内容读入内存进行处理并发送.我想1,2两步是你下面工作的基础.如果你这两步都没有实现的话,那么请继续来信询问.3\在ASP中做一个FILE-write操作的程序很容易吧,你可以将发送的内容按照一定的约定格式,生成一个数据文件,放到1步骤中的目录中.这样一来就实现了web-service 和sms-SERVICE的整合.现在明白了吧.发送内容/发送短信, 就是分这几个步骤,本人已经调试通过,效果就象SOHU .263 .SINA的一样,COOL基本思路就是以上提到的.当然你也可以使用数据库, 可能回慢一些. 效果一样的.关于SMS-SERVICE,或者根本觉得上述的说明对您没有帮助的话,迎继续来信[email protected] rediron()的解释有误,AT+CMGF=0or1,1代表text方式发送,0代表pdu方式发送,现在很少手机支持text方式发送只需将TP-DCS设为08,然后将字符串的unicode码换为16进制字符发送就能成功,比如:dim s as strings="测试"s4 = Hex(AscW(Mid(s, i, 1)))s4就是你要发送的字符串! 客户端与服务器的问题 datarepor 如何把查询条件显示到报表上? VB中文版中如何显示日文代码(在线等……) 用print在picture控件内写入文字,为何字体边缘非常粗糙有锯齿 怎样更改文本框颜色 截屏问题 到我喜欢的vb版来散分,欢迎大家来做个小调查,算是帮我完成邓论作业,来者有分 关于DCOM的问题 Help me,关于 DataReport 的 当MSGBOX输出时,如何让系统时间继续更新呢 在开发一个C/S结构的数据管理软件时,如何连接服务器端的数据源! 打印问题:
AT+CMGF=0 (发中文的方式,=1时能直接发送英文字母)
以下例子 发送到 13603021052(号码要重新编码3106031250F2两位两位一颠倒,‘F’为补位)
报文是 你好
译码为
044F60597D
04 长度
数据 4f60597d 汉字内码(在VB中使用Unicode码)
at 命令
AT+CMGS=019(发送的总长度)
(回车)返回
>
发送
0011000D91683106031250F2000801044F60597D 发送符
以ctrl_c做为发送终止符,然后回车,完成发送.
还没有弄清楚!
0011000D9168 :是pdu的标志头(我这样说它)
3106031250F2 :是对方的号码
000801 :中80是发送中文的标志
044F60597D :是发送内容,其中04是发送的长度,一个中文是两个长度
每次发送的总长度为15(是固定的值)+(发送内容的长度)
关于这个字串的生成是这样:
MSComm1.Output = "AT+CMGF=0" & Chr(13)
MSComm1.Output = "AT+CGMS=" & CStr(15 + strlen) & Chr(13)& "0011000D9168" & str_phone & "000801" & CStr(Hex$(strlen)) & sendmsg & Chr(26)
就可以了
str_phone : 是手机号码
strlen :是发送的长度
sendmsg :是发送的内容(unicode码,VB可以自己转换,用strconv)
现在说说,如何在WEB上发送短信息的设计思路.
切磋.切磋.切磋.见笑简单的说,需要的工作分为:
1\做一个守护程序,在服务器上我们称为sms-service,他的任务从WEB服务器的一个特定的目录中定时检查,是否有数据文件生成.
2\当发现有数据文件,就将他的内容读入内存进行处理并发送.我想1,2两步是你下面工作的基础.如果你这两步都没有实现的话,那么请继续来信询问.3\在ASP中做一个FILE-write操作的程序很容易吧,你可以将发送的内容按照一定的约定格式,生成一个数据文件,放到1步骤中的目录中.这样一来就实现了web-service 和sms-SERVICE的整合.现在明白了吧.
发送内容/发送短信, 就是分这几个步骤,
本人已经调试通过,效果就象SOHU .263 .SINA的一样,COOL
基本思路就是以上提到的.当然你也可以使用数据库, 可能回慢一些. 效果一样的.关于SMS-SERVICE,或者根本觉得上述的说明对您没有帮助的话,
迎继续来信[email protected]
只需将TP-DCS设为08,然后将字符串的unicode码换为16进制字符发送就能成功,比如:
dim s as string
s="测试"
s4 = Hex(AscW(Mid(s, i, 1)))
s4就是你要发送的字符串!