Мне нужно написать программу с машинами P0, P1 так, чтобы любая машина могла быть запущена первой и ей нужно было связаться с другой.Допустим, P1 запускается, тогда ему нужно продолжать пытаться связаться с P0, пока он не получит подтверждение от P0.Как я могу сделать это, используя сокет-программирование в Java.
Если возникает исключение, говорящее о том, что P0 не запущен, ему все равно нужно продолжать пытаться, а не выдавать исключение для этого.Или даже если оно вызывает исключение, как я могу обработать исключение таким образом, чтобы оно снова повторяло те же вещи.Я знаю, что P0 будет запущен вручную через несколько минут.
Вот что я делаю
int P1Ack = 1;
while(P1Ack != 1) // where P1Ack is the acknowledgment that P0 sends if it gets a message from P1
{
P1connectsP0();
}
public void P1ConnectsP0()
{
String str = "Hello";
{
Socket clientSock = new Socket(lamport.P0Ip, lamport.P0Port);
ObjectOutputStream clientWriter = new ObjectOutputStream(clientSock.getOutputStream());
ObjectInputStream clientReader = new ObjectInputStream(clientSock.getInputStream());
clientWriter.writeObject(str);
clientWriter.flush();
}
catch(IOException ex)
{
System.out.println("Error : P1 unable to talk to P0");
ex.printStackTrace();
}