Java 在这段代码中read()如何返回-1值?当客户端向服务器发送数据时,服务器会正确读取。读取后,read()方法不会返回-1值
我试图在套接字编程中使用Java 在这段代码中read()如何返回-1值?当客户端向服务器发送数据时,服务器会正确读取。读取后,read()方法不会返回-1值,java,sockets,Java,Sockets,我试图在套接字编程中使用read()方法 in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintStream(socket.getOutputStream(), true, "UTF-8"); while ((s = in.read()) != -1) { char
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
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()方法,我解决了我的问题。
谢谢大家。
如果(){break;}
你的问题是什么?你发布的代码和你在标题中说的一样。从输入读取所有数据时终止。请用更多的词。我想你的阅读障碍。您可以在成功读取后测试数据的结尾,中断读取器线程,或者切换到具有非阻塞模式的NIO。socketChannel.configureBlocking(假);在这段代码中,当客户端以I:987的形式向服务器发送数据时。服务器正确读取它。读取后,它正在等待更多的输入。但我想在读取数据后中断循环。我不想使用println()方法。(s=in.read())如何返回-1。如果套接字的另一端关闭连接,read将返回-1。