package com.sms;import org.smslib.IOutboundMessageNotification;
import org.smslib.Message.MessageEncodings;
import org.smslib.OutboundMessage;
import org.smslib.modem.SerialModemGateway;public class sms{
private static org.smslib.Service srv = new org.smslib.Service();public static void creatService() {
SerialModemGateway gateway = new SerialModemGateway("modem.com1", "com1",9600, "wavcom","123");
gateway.setInbound(true);
gateway.setOutbound(true);
try {
srv.addGateway(gateway);srv.startService();
System.out.println("Modem connected.");
sendSms("10086", "10086");
} catch (Exception ex) {
ex.printStackTrace();
}
}public static org.smslib.Service getService() {
if (srv == null) {
creatService();
}
return srv;
}public static void disconnect() {
try {
// srv.disconnect();System.out.println("Modem disconnected.");
} catch (Exception ex) {
ex.printStackTrace();
}}public static void main(String args[]) {
creatService();
}public static boolean sendSms(String mobile, String content) {
OutboundMessage msg = new OutboundMessage(mobile, content);
msg.setEncoding(MessageEncodings.ENCUCS2);
try {
srv.sendMessage(msg);
System.out.println(msg);
} catch (Exception ex) {
// log.error(ex);
return false;
}
return true;
}public void close() {
try {
srv.stopService();
} catch (Exception ex) {
// log.error(ex);
}
}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);
}
}
}

解决方案 »

  1.   

    已经能用超级终端连接上短信猫了,AT指令完全正常,可是用myeclipse即使完全按照网上说的家在了所有该加载的外部jar包还有dll啥的全都弄好了,还是显示
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways.
    This software is distributed under the terms of the Apache v2.0 License.
    Web Site: http://smslib.org
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: Version: 3.4.4
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: JRE Version: 1.6.0_13
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: JRE Impl Version: 11.3-b02
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: O/S: Windows XP / x86 / 5.1
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: GTW: modem.com1: Starting gateway, using Generic AT Handler.
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: GTW: modem.com1: Opening: com1 @9600
    2011-6-30 15:51:08 org.smslib.helper.Logger logInfo
    信息: GTW: modem.com1: Closing: com1 @9600
    2011-6-30 15:51:09 org.smslib.helper.Logger logInfo
    信息: GTW: modem.com1: Stopping gateway...
    2011-6-30 15:51:09 org.smslib.helper.Logger logInfo
    信息: GTW: modem.com1: Closing: com1 @9600
    2011-6-30 15:51:09 org.smslib.helper.Logger logInfo
    信息: GTW: modem.com1: Gateway stopped.
    org.smslib.GatewayException: Comm library exception: java.lang.RuntimeException: javax.comm.NoSuchPortException
    at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java:96)
    at org.smslib.modem.AModemDriver.connect(AModemDriver.java:111)
    at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:185)
    at org.smslib.Service$1Starter.run(Service.java:257)
    真心求救啊,可怜可怜我吧。快疯了
      

  2.   

    设备管理器里面写着那个端口的猫端口号是COM1啊,不管大小写都不行。。
      

  3.   

    javax.comm.NoSuchPortException 这个是嘛意思?我在想他肯定在告诉LZ要蛋定
      

  4.   

    是找不到这个端口导致意外退出
    可是为啥我用超级终端选贼com1能连接上???端口号绝对没问题啊
      

  5.   

    package test;import java.util.Enumeration;
    import org.smslib.helper.CommPortIdentifier;public class test  {
    public static void main(String [] args){
    Enumeration en = CommPortIdentifier.getPortIdentifiers();
                    CommPortIdentifier portId;
                    while (en.hasMoreElements())
             {
             portId = (CommPortIdentifier) en.nextElement();
             if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
             System.out.println(portId.getName());  
    }
    }
    }
    这段代码是检测机器上所有的COM口的代码,可是我任务管理器明明存在com,这个和程序一个都检测不出来
      

  6.   

    已经完成查找管理工具->服务->打开了任何可能与串口通信的服务,仍不奏效,继续努力查找其他原因
      

  7.   

    找到原因了没有,我的跟你的一模一样。求解,QQ715655775,邮箱[email protected]
    在线回复也行。
      

  8.   

    没有啊,我不用java连接了,改用C++了。成功了