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

原创 2004年09月21日 14:08:00

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

前言:本文只是探讨构造短信平台的思路,并不专注于讨论某种技术,文中所提到的技术细节如有疑问,请翻阅相关资料查找。

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

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

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

硬件:西门子M55手机一部、手机数据线(USB接口,虚拟COM口)、BENQ Joybook5000笔记本。
软件系统:Windows XP操作系统、.NET Framwork 1.1
开发工具:VS.NET2003

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

手机最好选用西门子、诺基亚、爱立信等著名品牌的手机。数据线尽量选用原装的,以确保其稳定性。连上数据线,装好手机驱动以后,记得查看一下你的手机连在了哪个端口,一会设置要用到。

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

OK,到此为止一切准备工作都完成了,在正式开始之前,我们还需要测试一下,看看能不能与电脑进行通讯,不然到时候编完了程序却发现不能通讯,怕是哭都哭不出来了。我用的测试工具是windows自带的“超级终端”。新建一个连接,设置端口号和端口参数,端口参数根据你手机的参数来定。基本上选择默认参数就可以。连接成功以后出现一个类似下图的窗口:


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

打个AT指令试试,返回OK就表示你的手机与PC已经可以通讯了。这个工具还是很有用的,大部分时候你都需要在这里测试AT指令。

万事具备,东风也有了。我们现在就开始构建短信平台之路,第一步的目标是做一个能发短消息的小程序出来。

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

最后在gotdotnet上找到了两个串口操作类,国内这样的源码和资料真是太少了 :( 。在这里顺便感谢一下这些原创作者,如果不是他们的辛勤努力,我们可就得辛苦喽。找到的两个串口操作类是JustinIO和SerialStreamReader。JustinIO是个简单易用的类,相当不错。SerialStreamReader本身就是一个串口调试工具,所以它基本上可以取代windows的“超级终端”。作为它里边的核心-SerialStream类直接继承自Stream类,这给我们的操作也带来了相当的便利,不过我在测试过程中发现,利用Remoting来调用这个类时会导致服务进程死锁,多少有些遗憾。(这两个类包在下面提供)

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

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

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

这是我做的一个DEMO,样子是简陋了点,不过作为测试,功能已经足够,关于此DEMO的源码在下次提供。

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

代码下载:

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

实战开发企业级ERP进销存管理项目视频教程下载

《基于ibatis、spring、struts2.0技术实战开发企业级ERP进销存管理项目(权限、Ajax、Jquery)》 课程讲师:小福 课程分类:Java 适合人群:中级 课时数量:91...
  • u014162796
  • u014162796
  • 2014年04月01日 12:55
  • 1931

手把手让你实现开源企业级web高并发解决方案

本来想起个比较风趣点的标题,可想来思去,还是走常规路线,做一系列的手把手吧。 这样一来,便于我的老朋友们识别,也让我对这篇文章的粒度把我有个定位。   本篇博文主要介绍利用开源的解决方案,来为企...
  • qq_26562641
  • qq_26562641
  • 2016年10月19日 10:30
  • 1174

短信平台建设方案

传统的短信群发平台是基于中国移动、联通、电信直接提供的短信端口与互联网连接实现与客户指定号码进行短信批量发送和自定义发送的,短信平台主要分为两种:一种是要下载安装到本地的软件版,一种是通过浏览器登录的...
  • zhongguomao
  • zhongguomao
  • 2016年07月09日 08:42
  • 1900

基于IMOOC强力django+杀手级xadmin 打造上线标准的在线教育平台课程的学习(1)

先用 Pycharm 新建一个名为 djangostart 的 Django 项目,进入 Pycharm 界面之后,按 ctrl+alt+r 启动 manage.py,输入命令 startapp ...
  • HeatDeath
  • HeatDeath
  • 2017年04月08日 20:36
  • 2014

我工作这几年(三) -- 实现短信平台

我工作这几年(三)-- 实现短信平台 快到了07年底的时候,新的任务过来了,需要基于公司的短信协议栈来实现一个短信业务平台,目标是要尽可能高地实现短信平台的性能,以方便后面的业务扩展。 根据最初的设计...
  • zhao3546
  • zhao3546
  • 2013年09月21日 17:21
  • 3793

搭建亿万级别短信服务发送平台

原文链接 摘要: 阿里云的小伙伴们,走过路过,千万不要错过。之所以起这么唬人的标题,其实就是想让路过的您点一下,顺便关注一下博主。当然你也可以默默地顶完文章然后转身就走人,但是动作一定要快,...
  • aikudemn
  • aikudemn
  • 2017年07月03日 14:05
  • 405

微米平台发送短消息 类

微米平台发送短消息 类
  • neilson123456
  • neilson123456
  • 2015年01月20日 15:16
  • 1252

利用第三方服务平台实现简单的短信验证功能

在本篇文章中,将会利用第三方服务平台实现短信验证功能。 首先,先介绍一下刚才提及的第三方服务平台:mob.com 移动开发者服务平台 该平台呢,主要有以下几点功能: 1、为IOS、Android...
  • qq_22804827
  • qq_22804827
  • 2015年11月23日 20:24
  • 3496

JAVA 企业级框架、安全权限、高并发、多线程、稳定强

技术点   1. 导出 导入 excel 文件   2 导出word文件   3. IO 流上传下载文件   4. 群发邮件,可以发html、纯文本格式,可以发给任意邮箱(实现批量发送广告邮件...
  • songqiqi00
  • songqiqi00
  • 2015年06月21日 16:49
  • 342

架构师之路:Java从零到企业级电商项目实战服务端

CK2135-Java从零到企业级电商项目实战服务端 随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大...
  • cadn_jueying
  • cadn_jueying
  • 2017年11月23日 20:53
  • 1373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己动手打造企业级短信平台(上)
举报原因:
原因补充:

(最多只允许输入30个字)