0

ソケットをリッスンするために、この InputStream リーダーを作成しました。このコードは、スレッドwhile(!stop)のメソッド内でループしています。runこのリーダーはスレッドをブロックし、メッセージを出力しません。

int read = 0;
byte[] buf = new byte[512];
int index = 0;
try {
    while (!stop && (read = in.read()) != -1) {
        System.out.println("read loop");
        buf[index++] = (byte) read;
    }
} catch (IOException e) {
    e.printStackTrace();
}
4

1 に答える 1

0

データが利用できない場合、読み取りは実際に実行中のスレッドをブロックします。

あなたが望むのは、タイムアウトでバイトを読み取ることですか?

これに対する答えは Is it possible to read from a InputStream with a timeout? で探してください。

于 2013-08-28T20:04:19.817 に答える