利用短信猫发送短信教程解决windows上发送成功而linux上失败问题

编程入门 行业动态 更新时间:2024-10-28 01:19:19

利用短信猫<a href=https://www.elefans.com/category/jswz/34/1766794.html style=发送短信教程解决windows上发送成功而linux上失败问题"/>

利用短信猫发送短信教程解决windows上发送成功而linux上失败问题

前言

目前用过的开源短信猫工具有jSMSEngine和SMSLib,下载地址及使用网上有很多,本文只是简要介绍短信猫的安装使用及在项目中遇到的坑。

说明:本文主要解决windows上通过短信猫发送成功而Linux上发送失败的问题。

通过短信猫发送短信案例GitHub地址:

安装部署

  1. Linux系统 2.6.18以上内核已自带usb转串口驱动,所以一般情况下不需要安装驱动。
  2. 将usb短信猫插入服务器usb口,使用dmesg命令查看,出现以下信息则说明系统已经识别出短信猫,接口为/dev/ttyUSB0 (注意:如果USB接口被其他设备占用,识别出的接口可能不一样,一般是ttyUSB0或者ttyUSB1)

    亦可使用命令:ls /dev/ttyUSB*,或lsusb检查系统是否识别出短信猫。
  3. 查看服务器jdk安装版本,使用java –version命令,如果显示结果中带64-Bit字样,则是64位JDK,否则是32位JDK(注意:JDK的位数和服务器的位数不是同一个概念,32位服务器只能装32位JDK,64位服务器可能装64位JDK,也可能装32位JDK)。
  4. 如果是32位JDK,将32位的librxtxSerial.so放入$JAVA_HOME/jre/lib/i386目录下,如果是64位JDK,将64位的librxtxSerial.so放入$JAVA_HOME/jre/lib/amd64目录下。
    Windows则复制rxtxSerial.dll 到%JAVA_HOME%/jre/bin/
  5. 项目lib引入jSMSEngine.jar和RXTXComm.jar(注意:32位的so是RXTX-2.1-7pre20版本,64位的so是RXTX-2.2-pre2版本,RXTXComm.jar只能向前兼容,否则低版本的jar调用高版本的so会报nativeGetVersion的异常)。

如此环境便已搭建好,只需调用接口发送短信即可。

jSMSEngine短信猫案例代码

基于jSMSEngine做了封装,只暴露出简单的短信发送接口,并且将短信猫的配置参数从properties配置文件读取,有兴趣的朋友可从GitHub上下载下来玩玩。
GitHub地址:

windows上短信发送正常,linux上则发不出去,等了很长时间后报GSM device is not responding异常。
解决步骤:
1、换线,将短信猫配的usb转串口线换成PL2303,淘宝上有,买过来换上,该线兼容性较好;
2、改源码,jSMSEngine开源包里需要将CSerialDriver.java的第88行改成
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
这样就可以解决windows上可以发送成功而linux失败的问题。
3、打包,最后为了方便,可以将修改后的jSMSEngine的源码重新打成jar包,打包之前需要线解决CGSMAlphabets.java的乱码问题,否则项目依赖该包运行时也会报错,可以用其他工具打开该文件,如sublime,该工具内显示正常不乱码,从sublime里复制该类的内容到eclipse里就会显示正常,然后执行export-->jar file

更多推荐

利用短信猫发送短信教程解决windows上发送成功而linux上失败问题

本文发布于:2024-03-14 17:37:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736992.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:发送短信   短信   教程   linux   windows

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!