打印流不打印


in = new BufferedReader (new InputStreamReader(client.getInputStream()));
out = new DataOutputStream(client.getOutputStream());
ps = new PrintStream(out);
public void run() {
    String line;    
    try {
        while ((line = in.readLine()) != null && line.length()>0) {
            System.out.println("got header line: " + line);
        }
        ps.println("HTTP/1.0 200 OK");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    ps.println("Content-type: text/htmlnn");
    ps.println("<HTML> <HEAD>hello</HEAD> </HTML>");
}

该程序运行没有错误,ps.println 不会向浏览器打印任何内容。知道为什么吗?

你试过冲洗流吗?没有任何其他信息,我猜你的PrintStream正在存储字符,但实际上并没有输出它们(为了提高效率(。

有关详细信息,请参阅 flush((。

你有几个问题。第一:根据HTTP标准:

请求行和标头必须全部以 (即,回车符后跟换行符(结尾。

因此,您需要发送"\r"字符来终止行。

此外,您正在使用带有""字符的 println 函数。Println 还会在字符串末尾添加换行符。

所以你需要改变这些行:

ps.println("HTTP/1.0 200 OK");
...
ps.println("Content-type: text/htmlnn");

ps.print("HTTP/1.0 200 OKrn")
ps.print("Content-type: text/htmlrnrn");

而且,不要忘记刷新((;

相关内容

  • 没有找到相关文章

最新更新