测试代码: http://www.cnblogs.com/files/dyj057/gms%20modem短信收发组件.rar
短信的部署方案很多种,我们现在介绍3种主要的部署方案。客户可以在这几个方案中选择一个来实施,完成短信的应用。
gms modem的部署
购买硬件设备
gms modem(短信模块)是一个硬件设备,通过串口与计算机通信,实现短信的发送。这个硬件都是可以在市场上很容易买到的,价格在1000-2000元之间。最好选用西门子tc35i和mc35为核心的短信模块,我们也提供短信模块的硬件。
买一张sim卡
其实gms modem相当于一个手机,需要一张sim卡才能工作。可以选择那些包本地通话费的收费类型,那样可以极大地节约短信发送的开支。比如:一张卡50元包本地通话费,即使你每月发送100万条短信,它也只花费了50元。每条短信的成本非常的低。
连接
把卡装入gms modem,然后使用模块自带的串口通讯线与服务器的串口连接,再接通电源,程序,设定gms modem的串口号,再启动短信服务,就完成了整个的部署方案。
sp 平台的部署
sp平台的部署就很复杂了,需要专业人员的参与,这里就不详细介绍了。
sms web service
sms web service不需要部署,只需要了解它的使用方法就可以了。比如新浪的短信发送服务:
新浪发送短信的web service资源的该问地址为:http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl,这是一个wsdl文件格式,您可以直接在您的vs.net环境中直接添加web引用,把该地址输入即可。
资费标准请参看新浪无线网站上的相关说明,应该是一条两角钱。由于其后台可能使用了消息队列机制,在繁忙的时候,可能会有几秒钟延迟。
如果是长期使用,收费有点贵。而且还必须与internet连接。
下面给出一个利用sms modem的发送短信的组件:
主要利用gmsmodemsvr的这个方法完成短信的发送.这些方法是:
addmodem 添加一个modem到服务器,如果已经加入到服务器中,就不能再添加了。
deletemodem modem工作组中删除一个modem
dispose 释放非托管资源
sendsms 发送短信,如果服务器已经启动,就启动发送线程,没有就直接的加入到发送队列中。
start 运行服务,连接所有的modem
stop 停止服务,清理系统资源
现在举例说明:
1 初始化设备
gmodemsvr svr = new gmodemsvr();
//初始化了一个从串口1连接的modem,默认使用57600的波特率
//如果你有多个modem,也可以加入,系统系统发送短信的能力会成倍的提高,
//它支持多个modem之间的负载平衡,最大限度的利用系统资源
svr.addmodem(new ibms.sms.gmsmodem(1));
//注册新短信的接收处理方法
svr.onreceivedsms += new recvedsms(form.onrecvedsms);
//开始运行,发送接收短信开始
svr.start();
2 发送短信
//构造一条新短信
sendsms sms= new sendsms("8613500000000","收到短信给我回一个");
//发送短信,后面的回调函数是这条新短信发送完成后,结果的处理
svr.sendsms(sms,new sendsmcallback(form.onsendsmend));
3 短信接收处理函数
public void onrecvedsms(object receiver, receivedsms receivedsms)
{
console.writeline("recv ms id"+receivedsms.id);
console.writeline("from:"+receivedsms.fromphonenumber);
console.writeline("message:"+ receivedsms.content);
}
不包含类库的源代码,在这里表示抱歉
在测试源代码中包含类库的说明文档,不明白的地方可以参看,也可以给我发邮件.
新闻热点
疑难解答