如果有多个socket.writeobject和一个socket.readobject会发生什么

fkvaft9z  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(224)

我正在更新服务器程序中的代码,对此我有疑问。下面是示例代码:

choice = "RETRY";
        while(choice.equals("RETRY")) {
            out.writeObject("ENTER_PREDICTION_PHASE");
            String predictedClass = null;
            RegressionTree predictionTree=tree;
            while(predictedClass == null) {
                out.writeObject("START_PREDICTION");
                String[] queryOptions= predictionTree.formulateQuery();
                if(queryOptions != null) {
                    out.writeObject("START_QUERY");
                    for(String option : queryOptions) {
                        out.writeObject(option);
                    }
                    out.writeObject("END_QUERY");
                    int selectedOption = (int) in.readObject();
                    predictionTree= predictionTree.predictClass(selectedOption);
                }else {
                    out.writeObject("END_PREDICTION");
                    predictedClass = predictionTree.getPredictedClassString();
                    out.writeObject(predictedClass);
                    //wait for RETRY or QUIT
                    choice = (String) in.readObject();
                }
            }
        }

如果服务器向客户机发送多个对象,而客户机使用socket.readobject只读取一次,会发生什么情况?对象是否堆叠在缓冲区中并一次读取或作为一个整体读取?是否有类似于c fflush()的方法来释放缓冲区?
还有另一个问题,尽管它不相关:我想问另一个关于stackoverflow的问题,但我不知道我想要实现什么的定义。基本上遵循上面相同的代码,我希望服务器在从套接字读取quit时中断,我想问一下这是怎么做到的,如果有什么特别的方法,而不是放大量的if。这种方法叫什么?有状态编程?我不知道,帮帮我

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题