2011-07-23 17 views
0

私のアプリケーションは、Javaプロセスを起動して管理するために使用されます(クラッシュした場合は再起動し、リモートコマンドを発行するにはtcpサーバを提供します)。 RCONサーバー(リモートコンソール)では正常に動作します。しかし、私はJavaプロセスにコマンドを送信するときに、私は返信したいと思います(Javaプロセスは実際にStandardEutputの代わりにStandardOutputで応答します)、リモートから接続された人にその応答を返します。C#リダイレクト標準入力/エラー

私の問題はRedirectedStandardInput関数を介して入力が送られてきたことですが、RedirectedStandardOutputから正しい返信を受け取れるようにするにはどうすればよいですか?

"RCONコマンドが送信されました。標準エラーで受信した次のメッセージを返信に使用する"という意味のグローバルフラグを使用するのが最善でしょうか?私の主な関心事は、Javaプロセスがゲームであり、この方法を使用すると、実際にコマンドへの応答ではなく、「プレーヤーがゲームに参加しました」のようなピックアップが発生する可能性があるということです。コマンドへの応答は視覚的に瞬時に行われますが、遅延があるかどうかわかりません。

答えて

0

これは、Javaアプリケーションの実装方法によって異なります。しかし、それについて何も知らなければ、マルチスレッドであると仮定しなければなりません。しかし、これは、コマンドに応答しないメッセージが、コマンドと応答を送信する間に表示されることを意味します。

そのような場合、あなたはいくつかのソリューションを持っている:

  1. あなたが可能なメッセージを知っていれば、それは応答または無関係なメッセージだかどうかを調べるために、それらを解析します。
  2. Javaアプリケーションを変更することができる場合は、通信用により良いプロトコルを使用するように変更します。
関連する問題