public void run()
{
// send client its mark (X or O), process messages from client
try
{
displayMessage("Player " + mark + " connected\n");
output.format("%s\n", mark); // send player's mark
output.flush(); // flush output
// if player X, wait for another player to arrive
if (playerNumber == PLAYER_X)
{
output.format("%s\n%s", "Player X connected",
"Waiting for another player\n");
output.flush(); // flush output
gameLock.lock(); // lock game to wait for second player
try
{
while(suspended)
{
otherPlayerConnected.await(); // wait for player O
}
}
catch (InterruptedException exception)
{
exception.printStackTrace();
}
finally
{
gameLock.unlock(); // unlock game after second player
}
// send message that other player connected
output.format("Other player connected. Your move.\n");
output.flush(); // flush output
}
else
{
output.format("Player O connected, please wait\n");
output.flush(); // flush output
}
// while game not over
while (!isGameOver())
{
int location = 0; // initialize move location
if (input.hasNext())
location = input.nextInt(); // get move location
// check for valid move
if (validateAndMove(location, playerNumber))
{
displayMessage("\nlocation: " + location);
output.format("Valid move.\n"); // notify client
output.flush(); // flush output
if (isGameOver()) {
output.format("Game over. You win!\n");
output.flush();
}
else if (isTie()) {
output.format("Game over. You have tied.\n");
output.format("%d\n", location);
output.flush();
}
}
else // move was invalid
{
output.format("Invalid move, try again\n");
output.flush(); // flush output
}
}
}
finally
{
try
{
connection.close(); // close connection to client
}
catch (IOException ioException)
{
ioException.printStackTrace();
System.exit(1);
}
}
}
Итак, это в основном код, который я изменил, но внутри if (isGameOver ()) основного клиента (тот, который я делаю выигрышный ход или ход связывания, получает сообщение), но я хочу, чтобы оба клиента получали сообщение, такое, что как только основной клиент выиграет, второй клиент также получит сообщение, которое они потеряли или связали. Как я смогу это сделать?