1

同じマシンで 2 つ以上の個別の Lua プログラム (LuaJIT2 で実行) を簡単に起動できます。しかし、これらのプログラムが通信できる方法はありますか?

私が思いつく最善の解決策は、各プログラムがテキスト ファイルを書き込めて、そのファイルを読み込めるようにすることです。しかし、これは非常に遅い解決策です (テキスト ファイルが仮想 RAM ディスクに保存されている場合でも)。

これに役立つ可能性のあるzeromqおよびその他のものがあることを私は知っています...問題は、指示が長すぎて複雑/紛らわしいことです(少なくとも私にとっては)。

推奨事項はありますか?特に、どんなに単純であっても、いくつかの実用的なコード例をいただければ幸いです。あるLuaJIT2プロセスから別のLuaJIT2プロセスに1つの変数の値を渡す方法さえ。

(問題があれば、Windows XP SP3 を使用しています...)

4

1 に答える 1

3

基本的に、探しているキーワードは「IPC」(Inter-Process Communication)です。

あなたが探求したいと思うかもしれないオプションのいくつか:

  • 共有ファイル
  • 共有メモリ
  • ネットワークソケット
  • パイプ (POSIX システム上)
  • 上記のいずれかを利用したミドルウェア

その中の 1 つが最高とは言えません。選択は、提供しなかった他の要因 (必要な速度、遅延、何を通信したいか) によって異なります。正しい方向に向けていただければ幸いです。

また、ZeroMQ が複雑すぎる場合は、単純なコード例を探すよりも、もっと読むことを強くお勧めします。Lua は「日曜大工」言語です。

Lua にあまりこだわらない場合は、PyRo (Python Remote Objects) を見てください。または、このようなものを自分で実装したい場合もあります。

于 2012-08-11T14:53:19.030 に答える