java利用smslib发送短信
java利用smslib发送短信.
自己写一个小程序,我在java1.6.0_10;smslib-v3.4.5下运行成功. 可以我的资源里面下载.
http://hi.csdn.net/link.php?url=http://yangzl0123.download.csdn.net
,主要是以下几个类.
Level_Final_Serial.java:串口底层操作
Serial_For_Smslib.java:对Level_Final_Serial的进一步封装,可以直接发送和接受串口信息.
如果要发送AT指令,需要先转换成相应的Ascii码.如: 发送AT指令A(acsii:65)T(ascii:84)回车(ascii:13)
char[] atOrder = {65, 84 ,13}; smslib_test.writeByte(atOrder);
Sms-Test修改版.rar,修改后:
String atCommand = "AT\r"; // 发送AT指令(加换行符号\r)
char[] atOrder = atCommand.toCharArray();
smslib_test.writeByte(atOrder);
// 读取数据
char[] rsByte = final_Level.readPackData();
if (rsByte != null){
for (char c : rsByte) {
rsStr += c;
}
if (rsStr.indexOf("OK")>0){
System.out.println("找到" + portStr + ":短信模块串口");
rsbool = true;
}
}
SmsService.java:smslib的封装
SmsSendJob.java:程序的运行实例(向10086发送11,查询余额,能发能收)
程序不完善,是有时候有异常出现,查了质料后还是无法解决:
程序中有时候会出现异常:
警告: GTW: SMSLINK: Ignoring InterruptedException in Queue.peek().
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at org.smslib.modem.AModemDriver$CharQueue.peek(AModemDriver.java:556)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:323)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:352)
at org.smslib.modem.athandler.ATHandler.isAlive(ATHandler.java:123)
at org.smslib.modem.AModemDriver$KeepAlive.process(AModemDriver.java:678)
at org.smslib.threading.AServiceThread.run(AServiceThread.java:117)
如果知道怎么做,或者有更好的思路发送短信,还请多多指教。
参考:http://osum.sun.
相关文档:
John O'Hanley 的这篇文章列举了四个有害的java编码习惯,并提出了改正方案。
这四个习惯普遍存在于java程序员中,并且已经被广泛接受,大家都习以为常,流毒甚远。
1.对局部变量(local variables),字段(fields),参数(method arguments)这三种变量的命名没有区分,造成了代码的阅读困难,增加了代码的维护成本。
作者 ......
单例模式单例模式是一种常见的设计模式,
单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。
单例模式有一下特点:
1、单例类只能有一个实例。
2、单例类必须自己自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
一、懒汉式单例在类被加载的时候,唯一实例已经被创建。这个设计模式在J ......
import java.io.IOException;
public class test {
/**
* 编码
* @param filecontent
* @return String
*/
public static String encode(byte[] bstr){
return new sun.misc.BASE64Encoder().encode(bstr);
}
/**
* 解码
* @param filecontent
* @return string
*/
public static ......
用关键字new生成对象:这是最常用的一种方式,例如 new String("hello")用new生成对象的特点是,这个对象的类必须在编译时就在classpath中,如果没有特别的理由和要求,这是我们生成一个对象的第一选择;
Class.forName(String className)。例如Class c = Class.forName("com.company.jdbc.Driver");这种方法的特点是在编 ......
3.3 游标循环最佳策略
我们在进行PL/SQL编程时,经常需要循环读取结果集的数据。进行逐行处理,这个过程就需要对游标进行循环。对游标进行循环的方法有多种,我们在此一一分析。
create or replace procedure proccycle(p varchar2)
as
cursor c_postype is select pos_type, description ......