Java http协议原因404的等待循环

Java http协议原因404的等待循环,java,http,httpserver,Java,Http,Httpserver,我正在尝试构建简单的JavaWeb服务器。来自客户端的每个请求都必须由单独的线程支持。我写了这样的东西: this.serverSocket = new ServerSocket(this.serverPort); while (!this.isStopped) { Socket clientSocket = null; clientSocket = this.serverSocket.accept(); HttpClient client = new HttpCli

我正在尝试构建简单的JavaWeb服务器。来自客户端的每个请求都必须由单独的线程支持。我写了这样的东西:

this.serverSocket = new ServerSocket(this.serverPort);

while (!this.isStopped) {
    Socket clientSocket = null;
    clientSocket = this.serverSocket.accept();

    HttpClient client = new HttpClient(clientSocket);
    new Thread(client).start();
} 
HttpClient类的run()函数:

public void run()
{
    try {
        InputStream input  = client.getInputStream();
        OutputStream output = client.getOutputStream();

        Thread.sleep(1000);

        output.write("HTTP/1.1 200 OK".getBytes());
        output.write(("\n\nWorkerRunnable: dd").getBytes());

        output.close();
        input.close();
    } catch (IOException ex) {
        Logger.getLogger(HttpClient.class.getName()).log(Level.SEVERE, null, ex);
    } catch (InterruptedException ex) {
        Logger.getLogger(HttpClient.class.getName()).log(Level.SEVERE, null, ex);
    }
}
当我扔掉

Thread.sleep(1000);
一切正常,但有了它,浏览器就无法与服务器连接


有什么问题吗?

试着把
线程放到sleep(1000)输出之后编写(…)
语句。您应该尽快确认客户端,然后等待。

一秒钟的延迟对于等待初始确认来说是很长的时间。例如,如果使用20毫秒而不是1000毫秒,它是否有效?为什么要进入睡眠状态呢?我试着建立一个简单的聊天——这就是为什么睡眠时间这么长的原因。当然,当浏览器想作为第一个请求连接到我的服务器时,浏览器会拒绝请求,因为请求太长。但当我通过Ajax请求发送请求时,一切都正常。谢谢你的帮助,拉塞尔!