Сокеты Java Thread (PrintWriter & BufferedReader) - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь создать игру, используя только два класса - 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 ().Проблема в том, что они оба выполняют один и тот же код одновременно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...