2

我正在监视 com 端口并获取可用的数据,该端口正在被另一个程序使用,所以是否可以在不打开它的情况下监视端口这是代码

package comtest;

import javax.comm.*;
import java.io.*;

public class PortTyper {

    public static void main(String[] args) {

        try {
            CommPortIdentifier com =
                    CommPortIdentifier.getPortIdentifier("COM2");

            CommPort thePort = com.open("port", 10);

            CopyThread output = new CopyThread(thePort.getInputStream(),
                    System.out);

            output.start();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

class CopyThread extends Thread {

    InputStream theInput;
    OutputStream theOutput;


    CopyThread(InputStream in, OutputStream out) {
        theInput = in;
        theOutput = out;
    }

    @Override
    public void run() {

        try {
            byte[] buffer = new byte[256];
            while (true) {
                int bytesRead = theInput.read(buffer);
                if (bytesRead == -1) {
                    break;
                }
                theOutput.write(buffer, 0, bytesRead);
            }
        } catch (IOException e) {
            System.err.println(e);
        }
    }
}

所以我可以直接看看 COM2 没有什么数据吗

CommPort thePort = com.open("port", 10);

谢谢

4

2 回答 2

2

如果串口被其他程序打开,则无法监控串口,因为一个串口不能同时打开 2 次。

于 2012-06-21T11:48:00.263 回答
-1

您可以使用 PortMon 等软件手动尝试监控串口。

然而,该软件仅在 Windows NT 之前可用。

于 2014-08-08T20:41:20.420 回答