我的应用程序用于启动Java进程并对其进行管理(如果崩溃,则重新启动它,提供tcp服务器以发出远程命令等)。使用我的RCON服务器(远程控制台),它工作正常。但是,当我将命令发送到Java进程时,我想接受回复(Java进程实际上在StandardError而不是StandardOutput中回复)并将响应显示给远程连接的人。
我的问题是因为他们的输入是通过我的RedirectedStandardInput函数发送的,我如何确保从RedirectedStandardOutput获得正确的回复?
最好的办法是拥有某种全局标志,这意味着“已发送RCON命令,通过标准错误接收的下一条消息应用于回复”?我想我的主要关注点是,Java进程是一个游戏,使用这种方法,它可能会拾取类似“玩家加入游戏”的内容,而不是实际上对命令的响应。对命令的响应在视觉上是即时的,但我不知道它是否只是有一点延迟。
答案 0 :(得分:0)
这取决于Java应用程序的实现方式。但如果我们对此一无所知,我们必须假设它可以是多线程的。但这意味着,在您发送命令和响应之间,可能会出现不响应命令的消息。
如果是这种情况,您有几种解决方案: