这是我的TCP客户端Java代码:
socket = new Socket("127.0.0.1", 8088);
out = new DataOutputStream(socket.getOutputStream());
inputStream = socket.getInputStream();
inputReader = new BufferedReader(new InputStreamReader(inputStream));
String result = "";
while (inputStream != null) {
result += inputReader.readLine();
}
out.writeUTF(result);
System.out.println(result);
socket.close();
out.close();
while
循环正在无限执行。
我需要解决这个问题的方法。
您需要检查何时readLine()
返回 null
,而不是inputStream
成为 null
(永远不会):
string s = inputReader.readLine();
while (s != null) {
result += s;
s = inputReader.readLine();
}
或:
string s;
while ((s = inputReader.readLine()) != null) {
result += s;
}
您需要在while循环中使用某种条件使inputStream无效,以使其中断。
[inputStream
总是有一个值,即它不是null
,所以您不断循环和追加。
这有意义吗?您可以像inputReader.readLine() != null
一样进行检查:
string line;
while ((line=inputReader.readLine()) != null) {
result += line;
}