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 に答える