Java 是否可以循环readUTF以读取多个未知的服务器行?
我想知道是否有一种方法可以从如下代码循环.readUTF:Java 是否可以循环readUTF以读取多个未知的服务器行?,java,stream,client-server,Java,Stream,Client Server,我想知道是否有一种方法可以从如下代码循环.readUTF: public void startClient() throws IOException { DataInputStream input = new DataInputStream(socket.getInputStream()); System.out.println(input.readUTF()); System.out.println(input.readUTF());
public void startClient() throws IOException {
DataInputStream input = new DataInputStream(socket.getInputStream());
System.out.println(input.readUTF());
System.out.println(input.readUTF());
Scanner scanner = new Scanner(System.in);
String name= scanner.nextLine();
DataOutputStream output= new DataOutputStream(socket.getOutputStream());
output.writeUTF(name);
....
在本例中,我知道服务器将发送两条消息,所以我编写了两个input.readUTF(),但如果我不知道消息的数量,我怎么能这样做呢
谢谢你Hi@Weenhallo-你怎么知道它什么时候不发送UTF8?所以它发出3-a)你怎么知道?然后b)你怎么知道它停止了?这是一个练习,所以我在练习服务器部分和客户端部分,所以我知道有两个输入,因为我在服务器部分写了两个输出。我不知道你是不是在问我。。。我对客户机/服务器方面非常陌生。(如果你需要的话,我也会用服务器代码更新)Hi@Weenhallo-如果你读了没有什么可读的,你会得到一个EOFExecption。。。我想问的是,你的代码如何知道停止处理UTF8,还是你只想一直读到流耗尽?也就是说,你可以在
时使用。。。JavaDoc准确地解释了它是如何工作的——所以我应该把所有代码放在带有EOFEException的try-catch上,对吗?但它并没有澄清我是否有一种方法可以循环输入。或者我只是学习缓慢hahah@user1535884只有当连接关闭时,这才是我想说的,但是我们只看到给定的代码,显然还有一些阅读需要完成/协议问题需要考虑,等等。