微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SMSLib 短信收发包

程序名称:SMSLib

授权协议: Apache

操作系统: 跨平台

开发语言: Java

SMSLib 介绍

SMSLib 是一个经GSM猫或者移动电话发送和接收SMS的类库,有java和.net两个版本。

已经提供了发送PDU格式短信的支持了。而且提供服务器模式,可以通过http方式调用收发短信。

发送程序来自smslib的分发包。SendMessage.java,稍作改动,以适应我手中的wavecom短信猫。

Service srv;
OutboundMessage msg;
srv = new Service();
SerialModemGateway gateway = new SerialModemGateway(“modem.com5”,
“COM5”, 115200, “WAVECOM”, “–”);
gateway.setInbound(true);
gateway.setoutbound(true);
gateway.setSimPin(“0000”);
srv.addGateway(gateway);
srv.startService();

msg = new OutboundMessage(“13801001000”, “中文测试。”);
msg.setEncoding(MessageEncodings.ENCUCS2);
srv.sendMessage(msg);
System.out.println(msg);

这是比较简单的同步方式发送短信,也就是说在发送过程中,线程将被阻塞,等待发送结束继续执行。测试了一下,基本上是间隔4-5秒钟发送一条。

这对大规模使用会造成影响,尤其是多线程的情况下,smslib提供了另外一种异步的方式,smslib提供了队列机制,调用者可以将发送短信排到
队列中,然后不停顿的做其他事情。但是smslib没有提供持久化的队列,当断电或者短信猫中断,队列中的数据将消失,因此使用异步方式的时候,还需要自
己实现一个持久的队列备份机制。

另外,需要注意的是,使用smslib需要导入smslib使用的第三方类库,按照官方文档的说法是log4j,但是,我使用的版本,已经更换为
slf4j,那么log4j就不是必须的了,因为可以切换到java logging
api上,另外,如果使用的gateway是SerialModem,也就是串口猫的话,可以不用commons-net api。以下是类库的截图:

SMSLib 官网

http://smslib.org/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐