分享
 
 
 

自己动手打造企业级短信平台(上)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

作者:dever (如需引用,请注明出处!)

在通讯发达的今天,短信已经成为人们交流的重要手段,与E-Mail、电话等传统交流方式相比,短信有着不可比拟的优势。越来越多的企业开始选择使用短信平台来进行企业宣传、行业应用、系统集成等等。

当你决定构造一个企业的短信平台时,你面临着以下几种选择:一是通过互联网或专线接入移动运营商短信中心或短信网关;二是通过互联网或专线接入中间服务运营商的短信中心(如新浪、网易这种SP服务商);三是通过计算机连接手机发送短消息;四是通过多路短信专用设备(GSM MODEM池)发送短消息。总的来说,第一种方式具有发送速度快、成功率和可靠性高的优点。为首选,其次为第四种方式。但显然这两种方法都不是我们普通人所能接触到的,更别说DIY了,所以,今天我要介绍的方法就是第三种,利用手机内置的GSM-MODEM构建短信平台。

先介绍一下我的开发环境:

硬件:西门子M55手机一部、手机数据线(USB接口,虚拟COM口)、BENQ Joybook5000笔记本。

软件系统:Windows XP操作系统、.NET Framwork 1.1

开发工具:VS.NET2003

大部分手机都有GSM-MODEM功能,所以你只要找个能发短信,带数据线的手机就OK了,如果有红外也可以,数据线最好用原装的。稳定性是个大问题,我可提醒你了,别到时候手机坏了找我哦~~ :)

如果你是第一次接触串口编程,那么你最好再补习一些基本的知识:串口编程常用AT指令

OK,看完了这些东西,是不是还有点迷糊,不要紧。动手开工吧,慢慢你会明白的。

连上数据线,装好手机驱动。装完以后注意看看你的手机连在了哪个端口,一会设置要用到。

(图1:我的手机端口为COM3)

连是连上了,但我们还需要测试一下,看看能不能与电脑进行通讯,不然到时候编完了程序却发现不能通讯,怕是哭都哭不出来了。我用的测试工具是windows自带的“超级终端”。

新建一个连接,设置端口号和设置端口参数。端口参数根据你手机的参数来定,基本上选择默认参数就可以。连接成功以后出现一个类似下图的窗口:

(图2:超级终端调试窗口)

打个AT指令试试,返回OK就表示你的手机与PC已经可以通讯了。大部分时候你都需要在这里测试AT指令,可不要小看了它,还可以用它发短信哦。

事情似乎进展的很顺利,但还不到沾沾自喜的时候,因为第一个拦路虎马上就要来了。我们第一步的目标是做一个能发短消息的小程序出来。OK,鼓足勇气,开始吧!

先整理一下思路,要想发短消息,就需要向串口发消息,要发消息就要能够和串口通讯,问题似乎已经很清楚,先找个能和串口通讯的类包吧。(可惜C#中并没有直接提供这样的类,昨天看一blog上写到VB.NET2005中有专门的串口通讯类,不知道C#2005中会不会也加入这样一个类?)网上这样的组件倒是挺多的,不过大部分没有源码并且收费,这显然有违DIY精神,不用也罢。

找来找去还是在gotdotnet上找到了两个串口操作类,国内这样的源码和资料真是太少了 :( 。在这里顺便感谢一下这些原创作者,如果不是他们的辛勤努力,我们可就得辛苦喽。找到的两个串口操作类是JustinIO和SerialStreamReader。最开始我用的是前者,后来在实验过程中发现这个类有一些BUG,功能也不完善。就改用了后者,SerialStreamReader本身也是一个串口调试工具,所以它基本上可以取代刚才在超级终端里做的那些工作。作为它里边的核心-SerialStream类直接继承自Stream类,这给我们的操作也带来了相当的便利,强烈推荐~(这两个类包在下面提供)

有了这两个类包,就意味着我们可以在自己写的程序里与串口进行通讯了,但可以通信并不意味着就可以发短信,因为凡是通讯都会有协议,而这里的通讯协议就是下面我要向大家介绍的收发短消息的三种模式。这三种模式分别是Block模式、Text模式和PDU模式。Block模式:需要手机生产厂家提供驱动支持,已被淘汰。Text模式:简单易行、不需要编码转,但只能发ASCII码,且支持此模式手机较少,多见于Nokia手机。PDU:支持此模式手机最多,兼容性好,但需要进行编码转换。

看了上面的介绍,毫无疑问我们的选择只有PDU了,网上关于PDU编码的例子很多,我参考的是蚕蛹写的一篇文章《C#开发终端式短信的原理和方法》,文章后边还有一个作者写的DEMO,相信会给初次接触串口编程的朋友带来很大帮助(包括我在内,谢谢蚕蛹)。他的DEMO里用的串口通讯类就是JustinIO。

现在似乎已经没有什么大问题了,动手做我们的程序吧,打开VS.NET,新建项目,把需要用到的类都导进来,就可以开始喽~~大家都是程序员,具体过程就不用我细说了吧。

这是我做的一个DEMO,样子是简陋了点,不过作为测试,功能已经足够

这么快就做出了一个可以发送短消息的程序来,是不是很有成就感~~呵呵,先陶醉一会吧。我们下次继续,88。

代码下载:

串口通讯组件:JustinIO.rarSerialStream.rar

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有