java使用短信设备发送sms短信的示例(java发送短信)

 更新时间:2014年04月22日 09:12:09   作者:  
这篇文章主要介绍了java使用短信设备发送sms短信的示例(java发送短信),需要的朋友可以参考下

复制代码 代码如下:

import gnu.io.*;
import java.util.*;
import java.io.*;

public class CommTest
{
    static CommPortIdentifier portId;
    static Enumeration portList;
    static int bauds[] = { 9600, 19200, 57600, 115200 };    //检测端口所支持的波特率

    public static void main(String[] args)
    {
        portList = CommPortIdentifier.getPortIdentifiers();
        System.out.println("短信设备端口连接测试...");
        while (portList.hasMoreElements())
        {
            portId = (CommPortIdentifier) portList.nextElement();
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
            {
                System.out.println("找到串口: " + portId.getName());
                for (int i = 0; i < bauds.length; i++)
                {
                    System.out.print("  Trying at " + bauds[i] + "...");
                    try
                    {
                        SerialPort serialPort;
                        InputStream inStream;
                        OutputStream outStream;
                        int c;
                        String response;
                        serialPort = (SerialPort) portId.open("SMSLibCommTester", 1971);
                        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();
                        while (c != -1)
                            c = inStream.read();
                        outStream.write('A');
                        outStream.write('T');
                        outStream.write('\r');
                        try
                        {
                            Thread.sleep(1000);
                        }
                        catch (Exception e)
                        {
                        }
                        response = "";
                        c = inStream.read();
                        while (c != -1)
                        {
                            response += (char) c;
                            c = inStream.read();
                        }
                        if (response.indexOf("OK") >= 0)
                        {
                            try
                            {
                                System.out.print("  获取设备信息...");
                                outStream.write('A');
                                outStream.write('T');
                                outStream.write('+');
                                outStream.write('C');
                                outStream.write('G');
                                outStream.write('M');
                                outStream.write('M');
                                outStream.write('\r');
                                response = "";
                                c = inStream.read();
                                while (c != -1)
                                {
                                    response += (char) c;
                                    c = inStream.read();
                                }
                                System.out.println("  发现设备: " + response.replaceAll("\\s+OK\\s+", "").replaceAll("\n", "").replaceAll("\r", ""));
                            }
                            catch (Exception e)
                            {
                                System.out.println("  没有发现设备!");
                            }
                        }
                        else System.out.println("  没有发现设备!");
                        serialPort.close();
                    }
                    catch (Exception e)
                    {
                        System.out.println("  没有发现设备!");
                    }
                }
            }
        }
    }
}

相关文章

  • Java 全面掌握网络编程篇

    Java 全面掌握网络编程篇

    网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节
    2021-10-10
  • Java线程中的关键字和方法示例详解

    Java线程中的关键字和方法示例详解

    这篇文章主要介绍了Java有关线程中的关键字和方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Java中的Rocketmq事务消息详解

    Java中的Rocketmq事务消息详解

    这篇文章主要介绍了Java中的Rocketmq事务消息详解,RocketMQ的事务消息支持在业务逻辑与发送消息之间提供事务保证,RocketMQ通过两阶段的方式提供事务消息的支持,需要的朋友可以参考下
    2023-08-08
  • Spring Boot启动流程分析

    Spring Boot启动流程分析

    本文给大家介绍spring boot是怎样启动和启动做了哪些事情。具体内容详情大家通过本文详细学习吧
    2017-09-09
  • Java 生成图片验证码3种方法(字母、加减乘除、中文)

    Java 生成图片验证码3种方法(字母、加减乘除、中文)

    这篇文章主要介绍了Java 生成图片验证码3种方法(字母、加减乘除、中文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 超详细讲解Java线程池

    超详细讲解Java线程池

    本文主要介绍了Java线程池,本文运用大量代码和图片讲解相关知识,感兴趣的小伙伴一起来看看吧
    2021-09-09
  • SpringBoot项目启动报错:命令行太长解决的两种解决方法

    SpringBoot项目启动报错:命令行太长解决的两种解决方法

    SpringBoot项目启动时可能会遇到命令行太长的错误,本文介绍两种解决方法修改.idea\workspace.xml文件和执行maven的clean命令或重启IDEA,这些操作可以有效解决启动问题,需要的朋友可以参考下
    2024-10-10
  • Java C++题解leetcode消失的两个数字实例

    Java C++题解leetcode消失的两个数字实例

    这篇文章主要介绍了Java C++题解leetcode消失的两个数字实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Springboot中的自定义拦截器及原理详解

    Springboot中的自定义拦截器及原理详解

    这篇文章主要介绍了Springboot中的自定义拦截器及原理详解,拦截器主要是用于在用户请求控制中,对于请求识别,鉴权,以及区分资源是否可以被目标方法调用的安全机制,需要的朋友可以参考下
    2023-12-12
  • SpringBoot整合Redis实现消息发布与订阅的示例代码

    SpringBoot整合Redis实现消息发布与订阅的示例代码

    能实现发送与接收信息的中间介有很多,比如:RocketMQ、RabbitMQ、ActiveMQ、Kafka等,本文主要介绍了Redis的推送与订阅功能并集成Spring Boot的实现,感兴趣的可以了解一下
    2022-08-08

最新评论