Java Socket多个请求

时间:2013-09-02 15:07:38

标签: java sockets serversocket

我已经构建了一个接受请求的小型网络服务器。问题是,如果我在浏览器中打开它,我的应用程序显示已收到4个请求。为什么4而不只是1?

while (true) {
        try {
            Socket remote = s.accept();

            String sendersIP = remote.getInetAddress().toString();
            log.add(sendersIP);

                System.out.println("Got new Request");

                out.println("HTTP/1.0 200 OK");
                out.println("Content-Type: text/html");
                out.println("Server: Bot");
                out.println("");
                out.println("<H1>Welcome</H1>");

            out.flush();
            remote.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

2 个答案:

答案 0 :(得分:0)

我建议您仅使用while来接受客户。 创建一个新线程,您可以在其中处理与Socket remote相关的所有内容。

线程也应该有一个while循环,从remote s InputStream读取 并且在创建后不要立即关闭套接字。然后你就可以看到你的浏览器究竟发送了什么。

因为它现在的方式。您在创建后立即关闭套接字到浏览器。

答案 1 :(得分:0)

看起来这是我的浏览器(Chrome)错误...如果我从eclipse发送请求它只出现一次。