flush 和 printwriter 的问题

Problems with flush and printwriter

我有以下代码:

while (true) {
    in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    out = new PrintWriter(socket.getOutputStream());

    String result = null;
    while (result != "string") {
        out.println("string one");
        out.flush();

        String var = null;      
        if ((var = in.readLine()) != null) {
            var2 = function(login);
            out.println(var2);
            out.flush();
        }
    }           
}

刷新工作不正常,主要是外部 while 循环的第一次迭代将打印两个输出,但之后出现奇怪的延迟,一切都搞砸了("string one" 没有打印到输出)。

我做错了什么?

您正在使用 != 来比较 String 引用,它不会按照您的想法行事,但这无关紧要,因为您永远不会更改。

很可能你在另一端有一个错误,这就是为什么 readLine() 阻止等待一些文本。