Java Socket несколько запросов

Я построил небольшой веб-сервер, который принимает запросы. Проблема в том, что если я открою его в своем браузере, мое приложение покажет, что было получено 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 ответа

Решение

Похоже, что это была ошибка моего браузера (Chrome)... Если я отправляю запрос из Eclipse, он появляется только один раз.

Я бы порекомендовал вам использовать while только для приема клиентов. Создайте новый поток, где вы обрабатываете все, что связано с Socket remote,

Поток также должен иметь цикл while, где он читает из remotes InputStreamи не закрывайте сокет сразу после создания. Затем вы можете увидеть, что именно отправляет ваш браузер.

Потому что так оно и есть сейчас. Вы закрываете сокет для браузера сразу после создания.

Другие вопросы по тегам