ServerSocket.accept дает мне несколько подключений, хотя я подключаюсь только один раз - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть ExecutorService, который создает новый поток для каждого соединения:

boolean running;
Socket socket;
ExecutorService executorService= Executors.newCachedThreadPool();
ss=new ServerSocket(port);
while(running){
        socket=ss.accept();
        executorService.submit(new ConnectionThread(socket));
        }

Конструктор ConnectionThread выглядит следующим образом, метод run слишком длинный для публикации здесь:

Socket socket;
ConnectionThread(Socket socket){
            System.out.println("connectionThread running...");
            this.socket=socket;
        }

, когда Я обновляю страницу sh в своем браузере, конструктор ConnectionThread сообщает, что было создано несколько потоков. Почему это происходит?

1 Ответ

0 голосов
/ 02 февраля 2020

Это происходит потому, что браузер открывает несколько TCP-соединений для разных целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...