gpt4 book ai didi

Java线程监听套接字,WHILE循环不等待

转载 作者:行者123 更新时间:2023-12-01 13:24:01 26 4
gpt4 key购买 nike

我正在为学校项目创建一个套接字服务器。客户端是用 C# 编写的,因此我迄今为止使用的 ObjectInputStream 对象无法正常工作。

我现在正在尝试使用InputStreamReader。在此示例中,while (true) 循环始终全速运行。使用ObjectInputStream它会等待对象到达。

我怎样才能以正确的方式做到这一点?

private InputStreamReader inputStream;

@Override
public void run() {

while (true) {

try {

// ObjectInputStream.read() waits for an object to arrive,
// so the execution is paused here

int data;
String string = new String();

while ( (data = inputStream.read() ) != -1) {
char thisChar = (char) data;
string = string + thisChar;
}


} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
break;
}

}

}

最佳答案

去掉外层循环。没有用。内部循环将运行直到流结束。之后,进一步的迭代是徒劳的。您正在 EOS 上旋转。

关于Java线程监听套接字,WHILE循环不等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21883770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com