1. ホーム
  2. cross-platform

クロスプラットフォームIPC [終了しました]

2023-12-04 03:51:38

質問

私は、可能なIPCメカニズムについての提案を探しています。

  • クロスプラットフォーム (最低でもWin32とLinux)
  • 実装が簡単な C++ と同様に 最も一般的なスクリプト言語 (perl、ruby、python など)。
  • 最後に 使いやすい をプログラミングの観点から使うことができます。

私のオプションは何ですか?私はLinuxでプログラミングしていますが、将来的には他のOSにも移植できるようなものを書きたいと思っています。ソケット、名前付きパイプ、または DBus のようなものを使用することを考えました。

どのように解決するのですか?

速度の面では、最適なクロスプラットフォーム IPC 機構はパイプになります。 ただし、これは同じマシン上でクロスプラットフォーム IPC を行いたい場合を想定しています。 リモート マシン上のプロセスと対話したい場合は、代わりにソケットの使用を検討する必要があります。 幸運なことに、少なくともTCPについて話しているのであれば、ソケットとパイプはほとんど同じ振る舞いをします。 それらを設定し接続するための API は異なりますが、どちらもデータのストリームのように動作するだけです。

しかし、難しいのは通信路ではなく、その上に渡すメッセージの方です。 検証やパースをしてくれるようなものを探すのが本筋です。 私は、Google の プロトコル バッファ . 基本的には、プロセス間で受け渡したいオブジェクトを記述した spec ファイルを作成し、その spec に一致するオブジェクトの読み取りと書き込みのためのコードを多くの異なる言語で生成するコンパイラが存在します。 メッセージング プロトコルやパーサーを自分で考え出すよりもはるかに簡単です (バグも発生しにくい)。