同じボックスで実行されているPythonプロセスがピックアップする必要がある「イベント」をまれに生成するバックグラウンドで実行されているC++プロセスがあります。
私のオプションは何ですか?
ありがとう
zeromq -ほかには何もありません。メッセージを文字列としてエンコードします。
ただし、ライブラリからシリアライゼーションを取得する場合は protobuf を使用すると、PythonおよびC++のクラスが生成されます。SerializeToString()およびParseFromString()関数をどちらかの終わり、それからZeroMqを介して文字列をパイプします。
他の解決策の方が速いとは思えないので問題は解決しました。また、他の解決策は配線が簡単で理解も簡単ではありません。
Windowsの名前付きパイプやUNIXのUnixドメインソケットなど、rpcに特定のシステムプリミティブを使用する場合は、 Boost :: ASIO を確認する必要があります。ただし、(a)ネットワーキングの背景がなく、(b)C++を十分に理解していない限り、これは非常に時間がかかります
zeromq を使用します。これは、取得するのと同じくらい簡単です。
別のオプションは、2つのプログラムを個別に実行するのではなく、 ctypes
モジュールを使用してPythonコードからCコードを呼び出すだけです。
データはどのくらい複雑ですか?それが単純であれば、文字列としてシリアル化します。適度に複雑な場合は、JSONを使用します。 TCPは優れたクロスプラットフォームですIPCトランスポート。これはIPCがまれであると言うので、パフォーマンスは非常に重要です。TCP+ JSONで十分です。
Google [〜#〜] grpc [〜#〜] を使用できます