浏览器在关闭其流之前不会显示响应



我正在使用Java开发一个简单的Web服务器应用程序。一切都很好,但是当http响应或html文档发送到Firefox或chrome浏览器等浏览器时,直到输出流或套接字关闭之前不会显示任何内容。有没有办法强制浏览器在不关闭流的情况下显示结果?或者我的代码有任何问题吗?

请注意,http 响应标头及其正文是正确的(内容长度),但浏览器仍在加载并且从未显示任何内容。

public void run()
{
    byte [] recbuf = new byte[16384]; //buffer 16KB
    int i = 0;
    try
    {
        while(CatServerSocket.isConnected())
        {
            i = CatServerSocket.getInputStream().read(recbuf,0,16384); //here 
            if(i<0)break;
            clientSocket.getOutputStream().write(recbuf,0,i);
            clientSocket.getOutputStream().flush();
            //if socket or output stream closed here, browser shows results
            System.out.println("INFO: " + i + " bytes recieved from CatServer!");
            System.out.println((new String(recbuf,0,i)));
        }
        System.out.println("ERROR: Connection to CatServer lost!");
    }
    catch(IOException e){e.printStackTrace();}
}

在java中,无论何时何地,只要你从任何流中读取。您应该关闭该流。然后,只有您才能从您创建的字节数组中获取数据。在此代码中,关闭该流并没有错。

相关内容

  • 没有找到相关文章

最新更新