Я пытаюсь создать игру, используя только два класса - ServerSocket и Socket.Все должно быть в TCP (не UDP), в то время как архитектура обязательно P2P.Эта игра работает так, что один игрок выбирает число, а затем другой, и начинается один из них (независимо от того, какой из них) ведет обратный отсчет.Я столкнулся с проблемой.Я устанавливаю связь между двумя клиентами, и оба могут ввести выбранный номер.Я не знаю, почему я не могу отправить этот номер другому клиенту.Проблема в том, что Socket не может отправлять и получать сообщения одновременно?Я читал, что есть возможность сделать это, используя два отдельных потока (один получает данные, другой отправляет), но я не знаю, как именно.
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(System. in ));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
System.out.println("PICK A NUMBER:");
while (!br.ready()) {
Thread.sleep(500);
}
Integer numberGamePicked = Integer.parseInt(br.readLine());
Thread.sleep(500);
out.println(numberGamePicked);
Thread.sleep(1000);
BufferedReader in =new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
int whatOpponentSend = Integer.parseInt( in .readLine());
System.out.println("RECEIVED " + whatOpponentSend);
}
Конечно, до этого моментавсе в методе run ().Проблема в том, что они оба выполняют один и тот же код одновременно?