У меня есть реализация, где я слушаю порт событий и выполняю обработку на основе ввода. Я сохранил его в бесконечном цикле. Однако он работает только один раз, а затем я снова должен перезапустить программу. Ли контроль никогда не возвращается. Является ли этот бесконечный цикл хорошей идеей?бесконечный цикл для прослушивания сокета
Integer port = Integer.parseInt(Configuration.getProperty("Environment", "PORT"));
ServerSocket serverSocket = new ServerSocket(port);
LOG.info("Process Server listening on PORT: " + port);
while(true){
Socket socket = serverSocket.accept();
new Thread(new ProcessEvent(socket)).start();
}
«Однако он работает только один раз, а затем мне нужно снова перезапустить программу». Я не понимаю - это бесконечный цикл. Почему он только «работает один раз»? Выходит ли цикл из-за исключения, возникшего внутри него? «Эта бесконечная петля - хорошая идея». - Конечно, почему бы и нет? Большинство нетривиальных потоков являются «бесконечными циклами», иначе они заканчиваются кодом :) –
Эта программа будет выполняться неограниченно и принимать любое количество подключений с учетом того, что происходит в классе «ProcessEvent», который вы еще не опубликовали. Неясно, что вы спрашиваете. – EJP
В двух словах я читаю файл и копирую его в другую папку. Предполагая, что исключение/ошибка не происходит, он отлично завершается. Этот поток автоматически передает управление обратно на главный код основного блока или этот бесконечный цикл продолжает работать независимо от завершения потока или нет и продолжает блокировать socket.accept() – avinashkr