Я работаю над программой, в которой два клиента подключаются друг к другу с помощью сокетов. У меня есть цикл while, который заставляет клиентов ждать успешного установления соединения между собой, прежде чем продолжить, но код внутри цикла, похоже, не работает правильно.
Я попытался поместить операторы печати в цикл while, что заставляет код работать так, как я ожидаю, но когда я их удаляю, кажется, что цикл while больше не проверяет условие, которое я установил, и таким образом продолжает зависать.
boolean keepRunning = true;
while (keepRunning)
{
if (alice.ready())
{
keepRunning = false;
}
}
public void ready()
{
return (socket1 != null) && (socket2 != null);
}
Код должен продолжать проверять, готовы ли два клиента, и затем продолжать работу в программе, но в настоящее время с кодом, приведенным выше, клиенты соединяются друг с другом, но затем никогда не выходят из цикла, что приводит меня к мысли, что внутренний код запускается не совсем так, как я ожидаю. Опять же, когда я помещаю операторы print в основной цикл while, код работает так, как я ожидал.