java通信
Java代码
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.smslib.IOutboundMessageNotification;
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.Message.MessageEncodings;
import org.smslib.modem.SerialModemGateway;
/**
* 短信发送测试类
* @author mazq
*
*/
public class SMSUtil{
public class OutboundNotification implements IOutboundMessageNotification
{
public void process(String gatewayId, OutboundMessage msg)
{
System.out.println("Outbound handler called from Gateway: " + gatewayId);
System.out.println(msg);
}
}
public void sendSMS(String mobilePhones,String content){
// System.out.println(mobilePhones+"--"+content);
Service srv;
OutboundMessage msg;
OutboundNotification outboundNotification = new OutboundNotification();
srv = new Service();
// SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM1", 115200, "wavecom", "9600");
SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM1", 115200, "wavecom", "9600");
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setSimPin("0000");
gateway.setOutboundNotification(outboundNotification);
srv.addGateway(gateway);
System.out.println("初始化成功,准备开启服务");
try{
srv.startService();
System.out.println("服务启动成功");
String[] phones = mobilePhones.split(",");
for(int i=0;i<phones.length;i++){
msg = new OutboundMessage(phones[i], content);//手机号码,和短信内容
msg.setEncoding(MessageEncodings.ENCUCS2);//这句话是发中文短信必须的
srv.sendMessage(msg);
System.out.println(phones[i]+" == "+content);
}
srv.stopService();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
SMSUtil util = new SMSUtil();
util.sendSMS("1355xxxxxxx","测试短信");
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.smslib.IOutboundMessageNotification;
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.Message.MessageEncodings;
import org.smslib.modem.SerialModemGateway;
/**
* 短信发送测试类
* @author mazq
*
*/
public class SMSUtil{
public class OutboundNotification implements IOutboundMessageNotification
{
public void process(String gatewayId, OutboundMessage msg)
{
System.out.println("Outbound handler called from Gateway: " + gatewayId);
System.out.println(msg);
}
}
public void sendSMS(String mobilePhones,String content){
// System.out.println(mobilePhones+"--"+content);
Service srv;
OutboundMessage msg;
OutboundNotification outboundNotification = new OutboundNotification();
srv = new Service();
// SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM1", 115200, "wavecom", "9600");
SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM1", 115200, "wavecom", "9600");
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setSimPin("0000");
gateway.setOutboundNotification(outboundNotification);
srv.addGateway(gateway);
System.out.println("初始化成功,准备开启服务");
try{
srv.startService();
System.out.println("服务启动成功");
String[] phones = mobilePhones.split(",");
for(int i=0;i<phones.length;i++){
msg = new OutboundMessage(phones[i], content);//手机号码,和短信内容
msg.setEncoding(MessageEncodings.ENCUCS2);//这句话是发中文短信必须的
srv.sendMessage(msg);
System.out.println(phones[i]+" == "+content);
}
srv.stopService();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
SMSUtil util = new SMSUtil();
util.sendSMS("1355xxxxxxx","测试短信");
}
}
如果收到短信,则说明ok了
如果在日志中输出下面的内容,一般是说你的commons-net-1.4.1.jar或comm.jar没有配置到classpath中
org.smslib.GatewayException: Comm library exception: java.lang.reflect.InvocationTargetException
at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java:93)
at org.smslib.modem.AModemDriver.connect(AModemDriver.java:106)
at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:111)
at org.smslib.Service$1Starter.run(Service.java:227)