Мое приложение используется для запуска процесса Java и управления им (перезапустите его в случае сбоя, предоставьте tcp-сервер для выдачи удаленных команд и т. Д.). С моим сервером RCON (удаленная консоль) все работает нормально. Однако когда я отправляю команду процессу Java, я хотел бы получить ответ (процесс Java на самом деле отвечает в StandardError вместо StandardOutput) и показать этот ответ обратно человеку, подключенному удаленно.
Моя проблема в том, что их входные данные отправляются через мою функцию RedirectedStandardInput. Как я могу убедиться, что получил правильный ответ от RedirectedStandardOutput?
Лучше всего было бы иметь какой-то глобальный флаг, который означает, что «команда RCON была отправлена, следующее сообщение, полученное с помощью стандартной ошибки, должно использоваться для ответа»? Я предполагаю, что моя главная проблема заключается в том, что Java-процесс, являющийся игрой, может использовать что-то вроде «Игрок присоединился к игре», а не как ответ на команду. Ответ на команду визуально мгновенный, но я не знаю, есть ли она или имеет небольшую задержку.