`

java modem 短信发送

阅读更多

前一段时间公司用到短信modem发送信息,我通过参考网络资料,写了一个完整的例子供大家一块学习。代码
如下:

package cn.thunderbird.lm.media.util; 
import java.io.*; 
import java.util.Enumeration; 

import org.smslib.helper.CommPortIdentifier; 
import org.smslib.helper.SerialPort; 
public class ATCommandUtil { 
private String ATTEST = "AT\r"; 
private String ATSMSSET = "AT+CMGF=1\r"; 
private int COMMANDDELAYTIME = 500; //命令间隔延迟时间ms 
private int SMSTIME = 5000; //发送短信延迟时间ms 
boolean rs; 
public boolean sendMsg(String phoneNumber,String content,String portNO,int brandate){ 
String ATMSG ="AT+CMGS=\""+phoneNumber+"\"\r"; 
CommPortIdentifier portid=CommPortIdentifier.getPortIdentifier(portNO); 
Enumeration portList = CommPortIdentifier.getPortIdentifiers(); 
SerialPort com = null; 
if(portid.getPortType()==CommPortIdentifier.PORT_SERIAL){//判断是否为串口 
if(portid.getName().equals(portNO)){//获取指定串口号 
try{ 
com = portid.open("ATCommand", 2000); 
println("COM OK!"); 
int c; 
String response = ""; 
com.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN); 
com.setSerialPortParams(brandate, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);//串口设置 
InputStream in = com.getInputStream(); 
OutputStream out = com.getOutputStream(); 
com.enableReceiveTimeout(1000); 
out.write(ATTEST.getBytes());//测试AT指令 
Thread.sleep(COMMANDDELAYTIME); 
c=in.read(); 
while(c!=-1){ 
if(c!='\r'){ 
response += (char)c; 
} 
c=in.read(); 
} 
if(response.indexOf("OK")>=0){//返回OK,代表AT指令正常 
print(new String(response.getBytes("iso-8859-1"),"GBK")); 
println("AT指令正常!\n"); 
} else{ 
println("AT指令出现异常,请检查端口号和波特率是否匹配!"); 
return false; 
} 
out.write(ATSMSSET.getBytes());//设置短信发送模式 
Thread.sleep(COMMANDDELAYTIME); 
response = ""; 
c=in.read(); 
while(c!=-1){ 
if(c!='\r'){ 
response += (char)c; 
} 
c=in.read(); 
} 

if(response.indexOf("OK")>=0){ 
print(response); 
println("短信设置TEXT模式成功!\n"); 
} else{ 
println("短信设置TEXT模式失败!"); 
return false; 
} 
out.write(ATMSG.getBytes());//发送指令AT+CMGS 
Thread.sleep(COMMANDDELAYTIME); 
response = ""; 
c=in.read(); 
while(c!=-1){ 
if(c!='\r'){ 
response += (char)c; 
} 
c=in.read(); 
} 
if(response.indexOf(">")>=0){ 
println(response); 
println("准备发送短信:"); 
println("短信内容:"+content); 
}else{ 
println("发送短信失败!"); 
return false; 
} 
out.write(content.getBytes());//发送短信内容 
println("发送短信..."); 
Thread.sleep(100); 
out.write(26);//发送CTRL+Z 
Thread.sleep(SMSTIME); 
response = ""; 
c=in.read(); 
while(c!=-1){ 
if(c!='\r'){ 
response += (char)c; 
} 
c=in.read(); 
} 
if(response.indexOf("OK")>=0){ 
println("短信发送成功!"); 
}else{ 
println("发送短信失败!"); 
return false; 
} 
}catch(Exception e){ 
println("端口号或者波特率不一致!"); 
println(e.getCause().toString()); 
return false; 
}finally{ 
if(com!=null){ 
com.close();//关闭端口 
println("COM is closed!"); 
} 
} 
}else{ 
return false; 
} 
}else{ 
return false; 
} 
return true; 
} 
public static void print(String msg){ 
System.out.print(msg); 
} 
public static void println(String msg){ 
System.out.println(msg); 
} 

 配置信息如下:

comm.jarwin32com.dll文件复制到JDK下面的jre/lib/ext.中, javax.comm.properties文件复制到JDK下面的jre/lib中。(文件都在短信modem所需文件配置.rar

资源下载:

 

分享到:
评论

相关推荐

    java 实现短信猫发短信代码

    Java 实现短信猫发短信是一项常见的通信技术应用,主要用于企业或服务端系统向用户发送验证码、通知等。本文将深入探讨如何使用Java编程语言通过短信猫(GPRS Modem)来实现这一功能,并重点关注给定文件中的关键...

    用JAVA写的短信发送程序

    【JAVA短信发送程序详解】 Java编程语言在信息技术领域中被广泛应用,其中之一就是构建短信发送程序。这个程序允许用户通过特定的硬件设备——短信猫,向指定的手机发送短信。短信猫,全称“Modem for SMS”,是一...

    GSMMODEM发送短信

    开发者通过编程语言(如Python、C#或Java)的串口库,建立与GSMMODEM的连接,然后发送AT命令来控制GSMMODEM执行相应的操作,如开启短信功能、设置短信内容、指定收件人,最后发送短信。 具体实现步骤通常包括以下几...

    短信开发包 gsm modem

    短信开发包和GSM MODEM在IT行业中是用于实现设备或软件通过移动网络发送和接收短信的技术。GSM(Global System for Mobile Communications)是一种广泛使用的移动通信标准,特别是在2G网络中,它允许设备通过GSM ...

    java调用modem执行at指令

    在这种情况下,Java调用Modem执行AT指令可能用于自动拨打电话验证用户身份、发送短信验证码或进行远程设备控制。 综上所述,实现“Java调用Modem执行AT指令”涉及了Java串口通信、AT指令控制、错误处理、线程管理和...

    sms.rar_java web_modem send sms java_sms gsm java_短信猫

    6. **错误处理和日志记录**:在实际应用中,必须考虑错误处理,比如端口不可用、短信发送失败等情况。同时,日志记录是必要的,可以帮助调试和追踪问题。 7. **安全考虑**:短信服务可能涉及敏感信息,因此需要确保...

    java调用短信猫

    1.这里主要是java调用短信猫发送短信。 这里的短信猫主要使用RS232串口与服务器通信。 2.需要用到开源组织开发的smslib.jar,直接导入开发环境即可。 3.smslib.jar 需要用到java串口通信需要用到的comm.jar,win32...

    Java控制CDMA MODEM完成短信息收发.pdf

    本文中利用Java语言编写的程序可以跨平台控制CDMA MODEM进行短信收发。文中提到了Java的开发环境,如JDK(Java Development Kit)和Eclipse IDE。 ***m API:***m是一个Java API,用于与计算机系统的串行端口通信。...

    短信猫(modem gsm)二次开发包

    短信猫(Modem GSM)是一种特殊的通信设备,它允许计算机通过GSM网络发送和接收短信。这个二次开发包是专为程序员设计的,用于利用这种技术集成到自己的应用程序中。以下是一些关于短信猫(Modem GSM)二次开发的...

    java 短信猫项目

    1. **Java多线程**:如果需要并发发送短信,多线程技术是必不可少的,可以提高短信发送的效率。 2. **数据持久化**:如果需要保存发送和接收的短信记录,那么可能需要用到数据库,例如MySQL或Oracle,进行数据存储和...

    smslib java发送短信

    【标题】"smslib java发送短信"涉及到的是Java平台下使用smslib库来实现短信发送的功能。smslib是一个开源的Java库,专为开发者提供发送和接收短信的能力,尤其适用于那些需要通过短信猫(Modem)或其他短信网关进行...

    Java使用短信猫发送短信(AT指令操作串口)

    本教程将聚焦于如何利用Java结合短信猫(Modem)发送短信,这通常涉及到AT指令集的使用以及串行通信。短信猫是一种硬件设备,能够通过SIM卡连接到移动网络,从而实现短信收发功能。在Java中,我们通常会借助特定的库...

    金笛JAVA版短信开发控件 V2.1.rar_java 短信_java 短信发送_短信 java_短信开发_短信控件

    在一个程序中使用可以使用多个短信控件(即同时连接多个GSM Modem设备)时,如果要发送一条短信,容器程序可优先选择发送队列为空的短信控件发送,或者选择发送队列中剩余发送条数最少的短信控件发送。

    java串口发送短信.zip

    在这个"java串口发送短信.zip"项目中,开发者使用了RXTX库来实现通过Java程序控制短信猫(SMS Modem)发送短信的功能。短信猫是一种硬件设备,它可以连接到计算机的串行接口(如COM口或USB口),并模拟GSM手机,从而...

    java发送短信之AT指令

    /**短信发送方*/ private String sender;//短信发送方 /**短信接收发*/ private String recver;//短信接收发 /**时间*/ private Date date; public String getSmstext() { return smstext; } public void...

    SMS-java.rar_java 短信_sms_sms ja_usb modem sms ja_短信猫 源码

    7. **集成测试**:在实际应用中,开发者还需要编写测试用例,模拟不同的网络环境和设备状态,确保短信发送和接收的可靠性。 8. **异常处理**:处理网络中断、设备故障、超时等异常情况是必不可少的。良好的异常处理...

    短信猫(GSM MODEM)Java开发指南

    【标题】:“短信猫(GSM MODEM)Java开发指南” 短信猫,也称为GSM调制解调器,是一种可以连接到计算机并通过GSM网络发送和接收短信的硬件设备。在Java环境中对其进行二次开发,可以实现自动化发送、接收短信以及...

    java实现通过串口与GSM猫相连从而发送短信

    Java 实现通过串口与 GSM 猫相连发送短信是一个常见的通信应用场景,主要涉及 Java 的串口编程技术以及 SMS(Short Message Service)协议的理解。在本文中,我们将深入探讨这个主题,了解如何利用 Java 来操作串行...

    windows_java.rar_java gsm_mondem.java_短信

    Java GSM Modem 开发包是用于在Windows平台上构建短信发送和接收功能的工具集。这个压缩包`windows_java.rar`包含了一系列与Java编程语言相关的资源,特别是针对GSM调制解调器(也称为GSM modem)的API和示例代码。...

Global site tag (gtag.js) - Google Analytics