1

嗨,我是 java 初学者,在我的项目数据记录器连接到 com 端口中,我必须向端口发送 15 个整数值,然后其他设备将返回 15 作为响应,现在我正在写入输出流,但我没有得到响应。如何解决这个问题请帮助我。(我正在使用 javax.com 包)

谢谢您的回复

4

2 回答 2

3

你也必须得到一个 InputStream,你不能从 OutputStream 中读取。还是我错过了什么?

另外,请记住在写入输出后执行 OutputStream.flush(),否则您的数据可能会被缓冲以便稍后发送 - 如果响应者正在等待您的数据,这很可能是出现问题的地方。

话虽如此: javax.comm 包真的很旧。上次我使用它时,它几乎似乎被 Sun 弃用了,或者至少没有以任何方式维护。您可能想查看其他解决方案(想到SerialIO )。

于 2009-02-02T10:23:16.593 回答
0

尝试以下示例代码

public static void init(String port) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
System.out.println(portId.getName());
    if (portId.getName().equals(port)) {



try {sPort = (SerialPort) portId.open("PORT_NAME", 2000);
             reader = new sms();
             break;
            } 
        catch (Exception e) { System.out.println(e);continue;}
   }
}

}

并使用 com 端口名称(如 COM15、COM11、COM12 等)调用 init()方法,检查它所连接的设备 com 端口。

于 2013-07-31T09:04:53.920 回答