0

我写了这个 InputStream 阅读器来监听一个 Socket。此代码位于线程方法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 timeout?中寻找答案?

于 2013-08-28T20:04:19.817 回答