Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以循环readUTF以读取多个未知的服务器行?_Java_Stream_Client Server - Fatal编程技术网

Java 是否可以循环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());

我想知道是否有一种方法可以从如下代码循环.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只有当连接关闭时,这才是我想说的,但是我们只看到给定的代码,显然还有一些阅读需要完成/协议问题需要考虑,等等。