我编写了一个Java应用程序,该程序从USB
GSM调制解调器读取和发送SMS消息。我正在使用SMSLib(使用JavaCommAPI),并且它在Windows上运行。我需要传入调制解调器似乎已连接到的COM
PORT。
到目前为止,我一直在使用Windows设备管理器手动查找COM PORT,并将其写入属性文件。我想知道是否有办法检测通过编程方式将调制解调器连接到哪个COM
PORT?
谢谢!!
package com.cubepro.util;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Formatter;
import org.apache.log4j.Logger;
import org.smslib.helper.CommPortIdentifier;
import com.cubepro.general.CommonConstants;
import com.cubepro.util.SendMessage;
public class CommPortTester {
private static final String _NO_DEVICE_FOUND = " no device found";
private final static Formatter _formatter = new Formatter(System.out);
private static Logger log = Logger.getLogger(CommPortTester.class);
static CommPortIdentifier portId;
static Enumeration<CommPortIdentifier> portList;
static int bauds[] = { 9600, 14400, 19200, 28800, 33600, 38400, 56000,
57600, 115200 };
public static final String MAINCLASS = "org.smslib.Service";
public CommPortTester() throws Exception {
Class.forName(MAINCLASS);
}
/**
* Wrapper around {@link CommPortIdentifier#getPortIdentifiers()} to be
* avoid unchecked warnings.
*/
private static Enumeration<CommPortIdentifier> getCleanPortIdentifiers() {
return CommPortIdentifier.getPortIdentifiers();
}
public String testAndQualifyPort() throws Exception {
String status = CommonConstants.MODEM_STATUS_ERROR;
SendMessage sendMessage = new SendMessage();
log.debug("\nSearching for devices...");
portList = getCleanPortIdentifiers();
while (portList.hasMoreElements()) {
portId = portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
_formatter.format("%nFound port: %-5s%n", portId.getName());
try {
if(portId.getName()
boolean comPortSuccess = sendMessage.doIt(portId.getName());
if(comPortSuccess == true){
return portId.getName();
}
} catch (final Exception e) {
log.debug(" Modem error occured -",e);
}
}
}
log.debug("\nTest complete.");
return status;
}
public static void main(String[]args){
try{
CommPortTester tester = new CommPortTester();
tester.testAndQualifyPort();
}catch(Exception e){
e.printStackTrace();
}
}
}
问题内容: 我可以知道Java RMI连接使用哪个端口吗? 如果要使用RMI连接将Java客户端应用程序连接到Java服务器应用程序,我需要在服务器计算机上打开哪个端口,以便客户端应用程序可以连接到该端口? 我想在服务器计算机上设置防火墙,但是我不知道应该打开哪个端口。 问题答案: RMI通常无法在防火墙上工作,因为它使用不可预测的端口(它始于1099,然后再使用随机端口运行)。 在这些情况下,通
我正在开发一个应用程序,需要能够在Windows OS上通过串行通信与设备进行通信。应用程序是用Java编写的。我正在使用jSSC库。(javax.comm有问题,RxTx不支持Java8,除了一个非官方的更新)这些设备可以使用串行端口直接连接到PC,或者使用USB到串行转换器。 我的问题是:windows上的COM端口是动态的。这引发了一个定义要连接到哪个通信端口的问题。是否有一种方法可以自动找
我正在开发一个Java应用程序,使用USB调制解调器发送短信(我的是华为E173)。我尝试了SMSLib,它的示例代码成功地发送了短信。但当它连接到互联网时,它就例外了 当手机连接到互联网时,有没有办法发送短信?我必须通过Java应用程序本身建立连接吗?如果必须,如何建立连接? 编辑:这是我发送短信的完整代码(从smslib.org下载,我更改了SMSC号码和发件人号码)
我正在运行Spring Boot2.0.1和JUnit5。我正在尝试在集成测试中获取端口。但是,端口值始终为零。我不确定是什么引起的。我尝试将web环境枚举更改为随机端口,但似乎没有任何工作。 下面是pom(注意:仅显示依赖项) 应用程序.属性
我在Maven中使用SpringREST和Mongo来创建一个连接到服务器的web服务。问题是我还没有为Mongo编写任何代码,它试图连接到localhost,这给我带来了一个MongoSocketOpenException。我所写的唯一代码是从main开始的两行代码。这是stacktrace: 这是我的pom.xml 最后,我必须声明,尽管存在异常,但程序运行良好 提前感谢!
我有控制器 我有一个控制器的组件 我还对我的控制器进行了测试。 当控制器调用。我得到一个。虽然我知道可以将添加到构造函数中,但我想知道是否有必要使用字段来实现这一点。如何确保字段注释在我的测试中有效?