测试代码: https://files.cnblogs.com/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);
}
不包含类库的源代码,在这里表示抱歉
在测试源代码中包含类库的说明文档,不明白的地方可以参看,也可以给我发邮件.