Попробуйте поймать несколько попыток в клиентской программе сокета на java.
Я пытаюсь сделать 3 попытки со стороны клиента, когда сервер не работает. После трех попыток он выйдет из программы. Что бы я ни пробовал, это работает, но в течение одного раза. при запуске программы она автоматически делает 3 попытки, но я хочу отдельно, как один раз, когда она потеряет одну попытку.
Спасибо
Что я уже пробовал:
int attempt =3; while(true) { try { Reconnect(); text1.append("Successfully connected \n"); textField1.setText("Connected"); textField1.setBackground(Color.GREEN); break; } catch (IOException e1) { attempt--; text1.append("you have left "+attempt+" attempt \n Try again\n"); } if(attempt==0) { SendMailBySite(); break; } } private void Reconnect() throws UnknownHostException, IOException { String hostName = "127.0.0.1"; int portNumber = Integer.parseInt("5058"); Socket socket = new Socket(hostName,portNumber); }
Richard MacCutchan
Вам нужно запустить блок try/catch внутри повторяющегося цикла.
FerdouZ
Я уже пытался. Это не работает.
Richard MacCutchan
Что не работает? Пожалуйста, не ждите, что мы догадаемся, что делает ваш код или какие результаты вы видите и почему они неверны. Если вы не предоставите правильных деталей, то у нас нет возможности сделать полезные предложения.
FerdouZ
Я обновляю свой код. В соответствии с вашим решением я поместил блок try/catch внутри цикла. Теперь, когда я запускаю эту программу, она запускает все попытки вместе, но я хочу, чтобы одна попытка была сделана один раз, как попытка входа в систему.Итак, после трех попыток он выйдет.На самом деле я делаю в java swing Gui. Надеюсь, вы поймете. Если что-нибудь, пожалуйста, спросите в комментарии. Спасибо
Richard MacCutchan
Теперь я исправил отступ в вашем коде, его немного легче читать. Вы правильно уменьшаете счетчик попыток в своем блоке catch. Однако в конце цикла, если счетчик попыток равен нулю, вы не выходите.
Gerry Schmitz
Вам нужно изучить "поток программ".
Компьютерное программирование/управление - Wikibooks, открытые книги для открытого мира[^]