日期:2014-05-20  浏览次数:20827 次

java 发送短信 遇到的问题
package com.test.dxfs;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;

import javax.comm.CommPortIdentifier;
import javax.comm.SerialPort;

/**
 * @author Administrator
 * 检查串口信息
 */
public class TestCommPort {

static private CommPortIdentifier portId;
static private Enumeration<CommPortIdentifier> portList;
static int bauds[]={9600, 19200, 38400, 57600, 115200};

public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
System.out.println("GSM Modem 串行端口连接测定开始..");
String portName = "COM1";
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if(portId.getPortType()== CommPortIdentifier.PORT_SERIAL  && portName.equals(portId.getName())){
System.out.println("找到接口:"+portId.getName());
for (int i = 0; i < bauds.length; i++) {
System.out.println(" Trying at " + bauds[i]+".......");
try {
SerialPort serialPort;
InputStream inStream;
OutputStream outStream;
int c;
StringBuffer response = new StringBuffer();
serialPort = (SerialPort) portId.open("SMSLibCommTester",2000);
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN);
serialPort.setSerialPortParams(bauds[i],SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
inStream = serialPort.getInputStream();
outStream = serialPort.getOutputStream();
serialPort.enableReceiveTimeout(1000);
c = inStream.read();//该值怎么为-1了,是什么原因导致的,该怎么修改,请教了,
while (c != -1) {
c = inStream.read();
}
outStream.write('A');
outStream.write('T');
outStream.write('\r');
try {
Thread.sleep(1000);
} catch (Exception e) {

}
c = inStream.read();
while (c != -1) {
response.append((char)c);
c = inStream.read();
}
if(response.indexOf("OK")>=0){
System.out.println("正在检查设备");
try {
outStream.write('A');
outStream.write('T');
outStream.write('+');
outStream.write('C');
outStream.write('G');
outStream.write('M');
outStream.write('M');
outStream.write('\r');
response = new StringBuffer();
c = inStream.read();

while (c != -1) {
response.append((char)c);
c = inStream.read();
}
System.out.println("发现设备:"+response.toString().replaceAll("(\\s+OK\\s+)|[\n\r]",""));
} catch (Exception e) {
System.out.println("检查设备失败,获取设备异常:"+e.getMessage());
e.printStackTrace();
}
}else{
System.out.println("检查设备失败,没有接受到响应的结果");
}
serialPort.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("检测设备失败,发生异常:+"+e.getMessage());
}
}

}

}
}
}