手机刚刚收到短信,端口java获取端口号信息内容

电脑通过数据线使用手机批量发送短信详解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
电脑通过数据线使用手机批量发送短信详解
&&手机作为GSM Modem使用,手机用数据线和电脑连接。安装数据线驱动程序,本文以windowsXP为例,详细说明如何安装和设置;介绍了一个软件以便发送短信。
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢最近公司项目需要使用短信设备进行相关操作提示,于是申请了一个西门子模块的短信设备。今天刚刚到手就开始测试,按照淘宝卖家的说明进行操作总是报异常。
org.smslib.GatewayException: Comm library exception: java.lang.reflect.Invocatio
nTargetException
at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java
at org.smslib.modem.AModemDriver.connect(AModemDriver.java:106)
at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:111)
at org.smslib.Service$1Starter.run(Service.java:227)&/
询问卖家原因可能在什么地方,得到的回答是不懂开发。于是开始自己“埋头苦干”。首先确定了驱动没有问题,USB模拟串口没有问题,基础环境和jar包等路径没有问题。-_-!我就崩溃了,到底是哪里的问题呢,分析了一圈,发现Myeclipse中“windows”-&“preferences”-&"java"-&"installed jres",Myeclipse默认使用的是自己的JRE,需要手动将你选择你安装的“JAVA_HOME”/JRE,这样问题就解决了。在使用卖家提供的smslib-3.3.0b2.jar只能使用网上的发送短信源码,不能使用接收短信源码。请将jar文件替换成smslib-3.5.1.jar就可以了
现将网上的源码公布一下:
测试端口
import java.util.E
import org.smslib.helper.CommPortI
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());
System.out.println("=============");
发送短信源码
import org.smslib.AG
import org.smslib.GatewayE
import org.smslib.IOutboundMessageN
import org.smslib.OutboundM
import org.smslib.S
import org.smslib.Message.MessageE
import org.smslib.modem.SerialModemG
public class SendMessage {
public class OutboundNotification implements IOutboundMessageNotification {
public void process(AGateway agateway, OutboundMessage outboundmessage) {
System.out.println("Outbound handler called from Gateway: " + agateway);
System.out.println(outboundmessage);
@SuppressWarnings("deprecation")
public void sendSMS(String mobilePhones, String content) throws GatewayException {
OutboundNotification outboundNotification = new OutboundNotification();
srv = new Service();
srv = Service.getInstance();
SerialModemGateway gateway = new SerialModemGateway("modem.com3", "COM3", 115200, "wavecom", ""); // 设置端口与波特率
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setSimPin("1234");
gateway.setOutboundNotification(outboundNotification);
srv.setOutboundMessageNotification(outboundNotification);
srv.addGateway(gateway);
System.out.println("初始化成功,准备开启服务");
srv.startService();
System.out.println("服务启动成功");
String[] phones = mobilePhones.split(",");
for (int i = 0; i & phones. i++) {
msg = new OutboundMessage(phones[i], content);
msg.setEncoding(MessageEncodings.ENCUCS2); // 中文
srv.sendMessage(msg);
srv.stopService();
srv.removeGateway(gateway);
} catch (Exception e) {
e.printStackTrace();
public static void main(String[] args) throws GatewayException {
SendMessage sendMessage = new SendMessage();
sendMessage.sendSMS("手机号码", "短信内容");
接收短信源码
import java.util.ArrayL
import java.util.L
import javax.crypto.spec.SecretKeyS
import org.smslib.AG
import org.smslib.ICallN
import org.smslib.IGatewayStatusN
import org.smslib.IInboundMessageN
import org.smslib.IOrphanedMessageN
import org.smslib.InboundM
import org.smslib.L
import org.smslib.S
import org.smslib.AGateway.GatewayS
import org.smslib.AGateway.P
import org.smslib.InboundMessage.MessageC
import org.smslib.Message.MessageT
import org.smslib.crypto.AESK
import org.smslib.modem.SerialModemG
public class ReadMessages {
public static Service srv = Service.getInstance();
public void doIt() throws Exception {
List&InboundMessage& msgL
InboundNotification inboundNotification = new InboundNotification();
CallNotification callNotification = new CallNotification();
GatewayStatusNotification statusNotification = new GatewayStatusNotification();
OrphanedMessageNotification orphanedMessageNotification = new OrphanedMessageNotification();
System.out.println("Example: Read messages from a serial gsm modem.");
System.out.println(Library.getLibraryDescription());
System.out.println("Version: " + Library.getLibraryVersion());
SerialModemGateway gateway = new SerialModemGateway("modem.com3", "COM3", 115200, null, null);
gateway.setProtocol(Protocols.PDU);
gateway.setInbound(true);
gateway.setOutbound(true);
srv.setInboundMessageNotification(inboundNotification);
srv.setCallNotification(callNotification);
srv.setGatewayStatusNotification(statusNotification);
srv.setOrphanedMessageNotification(orphanedMessageNotification);
srv.addGateway(gateway);
srv.startService();
System.out.println();
System.out.println("Modem Information:");
System.out.println(" Manufacturer: " + gateway.getManufacturer());
System.out.println(" Model: " + gateway.getModel());
System.out.println(" Serial No: " + gateway.getSerialNo());
System.out.println(" SIM IMSI: " + gateway.getImsi());
System.out.println(" Signal Level: " + gateway.getSignalLevel() + "%");
System.out.println(" Battery Level: " + gateway.getBatteryLevel() + "%");
System.out.println();
srv.getKeyManager().registerKey("+8", new AESKey(new SecretKeySpec("6677".getBytes(), "AES")));
msgList = new ArrayList&InboundMessage&();
srv.readMessages(msgList, MessageClasses.ALL);
for (InboundMessage msg : msgList) {
System.out.println(msg);
srv.deleteMessage(msg);
//删除短信
System.out.println("Now Sleeping - Hit &enter& to stop service.");
System.in.read();
System.in.read();
} catch (Exception e) {
e.printStackTrace();
public class InboundNotification implements IInboundMessageNotification {
public void process(AGateway gateway, MessageTypes msgType, InboundMessage msg) {
if (msgType == MessageTypes.INBOUND)
System.out.println("&&& New Inbound message detected from Gateway: " + gateway.getGatewayId());
else if (msgType == MessageTypes.STATUSREPORT)
System.out.println("&&& New Inbound Status Report message detected from Gateway: " + gateway.getGatewayId());
System.out.println(msg);
public class CallNotification implements ICallNotification {
public void process(AGateway gateway, String callerId) {
System.out.println("&&& New call detected from Gateway: " + gateway.getGatewayId() + " : " + callerId);
public class GatewayStatusNotification implements IGatewayStatusNotification {
public void process(AGateway gateway, GatewayStatuses oldStatus, GatewayStatuses newStatus) {
System.out.println("&&& Gateway Status change for " + gateway.getGatewayId() + ", OLD: " + oldStatus + " -& NEW: " + newStatus);
public class OrphanedMessageNotification implements IOrphanedMessageNotification {
public boolean process(AGateway gateway, InboundMessage msg) {
System.out.println("&&& Orphaned message part detected from " + gateway.getGatewayId());
System.out.println(msg);
public static void main(String args[]) {
ReadMessages app = new ReadMessages();
app.doIt();
} catch (Exception e) {
e.printStackTrace();
以上所有代码均经过XP测试通过,明天进行win03测试,后续准备进行linux的测试。
浏览: 5828 次
来自: 哈尔滨
这个不需要安装就可以使用的,只需要有JDK相关文件,配置下环境 ...
确实重来不安装,直接重配一下环境变量。。。
其实JDK不需要安装的。相比之下JRokit比较彻底,“安装” ...
steafler 写道2B青年时时有,今年特别多8577086 ...
呵呵,感觉楼主确实有点2B,难道不知道JDK是绿色的么?还需要 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'技术背景:
随着USB端口设备越来越多,大部分设备可以通过电脑连接来实现数据存取以及各种操作,USB端口的设备种类增多,电脑的USB端口也不断增加,如果想连接到电脑上必须通过具备有USB端口的数据线。
&但各种设备都到电脑上很容易混乱不知道哪个和哪个的,就是在用鼠标点击退出不需要的硬件设备端口时,很不容易区分,并且混在一起 一不小心就会退出不该退出的设备。比如我们把手机USB数据线,Ipod USB数据线 、打印机USB数据线、蓝牙耳机充电设备USB线还有U盘之类的以及鼠标USB线都通过电脑的USB端口连接到一台电脑上,在电脑的右下端会出现不同种类的硬件设备信息提示,根本不容易区分。
& 所以我们时不时可以有一个提示的方法来区别各个USB数据线以及U盘名称种类,分开显示并且具备分开退出的方法。
方法内容:
&当一台电脑连接很多USB端口信息时,电脑的上面就弹出一个小悬浮框,每当接入一个USB端口信息时,就自动识别此数据线接口所连接的设备信息名称,如Iphone手机线连接手机和电脑后,此悬浮窗口就记录此端口连接的是Iphone手机,MP3之类的就显示MP3信息,打印机的就显示出打印机的名称信息,还有U盘之类的,因为U盘种类和厂家不同所以没连接一个U盘就显示此U盘的名称,如金士顿的就显示金士顿,联想的就显示联想的名称种类,分类依次显示在悬浮窗口,且此窗口可以自由移动随便移动到电脑各个方位、甚至可以隐藏。
&若果想安全拔出一个端口信息,就可以根据分类信息分别根据鼠标点击来使此连接硬件设备安全退出并拔掉。这样很清楚的操作各个端口连接信息。当鼠标移动到此连接设备信息会提示弹出提示,当弹出后可以安全拔掉,如果没有拔掉想继续使用,当鼠标移动到此就会显示打开此设备信息,并继续使用。
阅读(...) 评论()鍙??涓ゆ?鎿嶄綔锛屼笉鍐嶆敹鍒伴獨鎵扮煭淇★紒
姝ゆ枃杞?浇鑷?井淇″叕浼楀彿锛氾紙ID锛歝haping321锛夊枩娆㈠氨鍏虫敞涓嬪挴锛}

我要回帖

更多关于 java获取服务器端口 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信