【问题标题】:C# Redirecting Standard Input/ErrorC# 重定向标准输入/错误
【发布时间】:2011-10-11 16:52:56
【问题描述】:

我的应用程序用于启动 Java 进程并对其进行管理(如果它崩溃则重新启动它,提供一个 tcp 服务器来发出远程命令等)。使用我的 RCON 服务器(远程控制台)可以正常工作。但是,当我将命令发送到 Java 进程时,我想接收回复(Java 进程实际上在 StandardError 中回复而不是 StandardOutput)并将该回复显示给远程连接的人。

我的问题是,由于他们的输入是通过我的 RedirectedStandardInput 函数发送的,我如何确保从 RedirectedStandardOutput 获得正确的回复?

最好的办法是设置某种全局标志,表示“RCON 命令已发送,通过标准错误接收的下一条消息应用于回复”?我想我主要担心的是,由于 Java 进程是一个游戏,使用这种方法,它可能会拾取诸如“玩家已加入游戏”之类的内容,而不是对命令的实际响应。对命令的响应在视觉上是即时的,但我不知道它是否或只是有一点延迟。

【问题讨论】:

    标签: c# .net process inputstream


    【解决方案1】:

    这取决于 Java 应用程序的实现方式。但是如果我们对此一无所知,我们就不得不假设它可以是多线程的。但这意味着在您发送命令和响应之间可能会出现不响应您的命令的消息。

    如果是这种情况,您有几种解决方案:

    1. 如果您知道可能的消息,请对其进行解析,以确定它是响应消息还是无关消息。
    2. 如果您可以更改 Java 应用程序,请对其进行更改,使其使用更好的通信协议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2022-07-23
      • 1970-01-01
      • 2014-03-22
      • 2011-10-11
      • 2010-11-28
      相关资源
      最近更新 更多