我正在为学校项目创建一个socket
服务器。客户端是用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;
}
}
}
答案 0 :(得分:1)
摆脱外循环。这是毫无意义。内循环将一直运行直到流结束。在那之后,进一步的迭代是徒劳的。你在EOS旋转。