我正在尝试在套接字编程中使用read()
方法。
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintStream(socket.getOutputStream(), true, "UTF-8");
while ((s = in.read()) != -1) {
char c = (char) s;
str = str + c;
System.out.println(str);
}
System.out.println("+++++");
在此代码中,客户端以I:987的形式向服务器发送数据。服务器正确读取它。在阅读之后,它正在等待更多的输入。但我想在读取数据后打破循环。我不想使用println()
方法。怎么能(s = in.read())
返回-1。
答案 0 :(得分:0)
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
s = in.read();
while (in.ready()) { // receiving data from client
s = in.read();
char c = (char) s;
str = str + c;
}
通过使用in.ready()方法我解决了我的问题。 谢谢大家。