問題タブ [inter-process-communicat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 32ビット-64ビットプロセス間通信
私はフロントエンドプロセスとしてWin32に基づくxmlエディターを実装する任務を負っていますが、ビジネスロジックは64ビットプロセスを介して処理されます。さらに、2つのプロセス間の通信は、フォームのメッセージのみを送信できるメッセージバスを介して行われますwchar_t *。(はい、それはとても悪いです)。
手元にあると仮定するとC++ 03、外部ライブラリのサポートはありません。たとえばBoost、このタスクに最適な設計は何でしょうか。ユースケースは、ユーザーがいくつかの.xmlファイルを編集するだけです。
さまざまなメッセージを処理してからイベントの「リッスン」に戻る関数ポインタテーブルをビジネスロジックモジュールに含めることを考えていました。
副次的な質問は、オブジェクトを文字列としてシリアル化する「簡単な」方法はありますか?
どうもありがとう。
編集:
ブーストが許可されるようになりました。ASIOまたはMPIを使用する必要がありますか?私は最初のものを推測しますか?
macos - XPC サービスにメッセージを送信するときの EXC_BAD_INSTRUCTION
プロセス間通信に XPC サービスを使用しようとしています。プロジェクトに XPC サービス ターゲットを追加しましxpc_connection_send_messageたEXC_BAD_INSTRUCTION。私が知る限り、正しく初期化して接続を開始しています。
そして、メッセージを送信します
ここに欠けているものはありますか?どういうわけか、サービスを見つけて接続するのに失敗していますか?
php - PHP非同期プロセス通信
PHP でプロセス間 (またはスレッド化) 通信を実現する方法はありますが、すべてを非同期で実行する方法はありますか?
4 つのプロセスを作成してすぐに終了するスクリプトが必要です。4 つのプロセスのそれぞれがアクションを実行する必要があり、終了すると、終了したことを誰か (おそらく別のスクリプト?) に通知する必要があります。したがって、4 つのスクリプトがすべて完了したことを知りたいので、ステータスを取得から完了に更新できます。
これは可能ですか?できればPHPを再コンパイルせずに(これはスレッドを操作するために必要だと読んでいます)、必要に応じてそうします。
c# - Matlabおよび.NET4.0データ通信
Matlabにアルゴリズムを実装しており、.NETプロジェクトと統合するためにそれをDLLとして展開することを計画しています。.NETプロジェクトはGUIベースのアプリケーションであり、その一部はアルゴリズムの実行から得られた結果の表示で構成されています。私が現在抱えている問題は、中間結果を表示する必要があるということです。アルゴリズムは非常に複雑で、(ユーザーが選択した)複数の反復で実行され、各反復の最後にGUIを現在のデータで更新する必要があります。
現時点で私が考えている最善の解決策は、MatlabスレッドがC#GUIアプリで起動するローカルtcpサーバーへのtcpクライアントとして機能することです。しかし、このアプローチは非効率的だと思います。私はこれが他の方法で達成できるかどうか疑問に思いました。
c# - C# は、別のプロセスがテキスト ファイルに変更を加えたときに通知を受け取る
別のプロセスが特定のテキスト ファイルに変更を加えたときに、C# アプリケーションで通知を受け取りたいと考えています。
これは、デバイスに関する情報を取得するために、アプリケーションからサードパーティ ツールを起動するためです。このツールは、デバイスの現在の状態を ini ファイルに保存します。これには不確定な時間がかかりますが、状態情報が利用可能になり次第、反応して読み取りたいと考えています。
これどうやってするの?
.net - CallbackContract を使用しない WCF との二重通信
次のシナリオで WCF を使用することをお勧めします。
基本的な説明
WCF サービスを提供するいくつかのモジュール (プログラム) があります。各アプリケーションは複数回起動できます。通常、このアプリケーションは一種の管理コンソールから開始されますが、手動で開始することもできます。
WCF セットアップ
現在 NetNamedPipeBinding を使用しています。アドレス "net.pipe://localhost" を持つ ServiceHost と、相対アドレスとしてプログラム名を持つエンドポイント。したがって、サービスにアクセスするには、たとえば「net.pipe://localhost/module1」を使用します。
私の質問
- 同じモジュールの別のインスタンスを開始するときに AddressAlreadyInUseException が発生しないようにするにはどうすればよいですか? 私の考えは、各インスタンスにIDを使用することでした。しかし、その後、私はそれらを追跡することはできません. (最初のインスタンスが既に閉じられている場合、module2 は module1 のどのインスタンスが使用可能かをどのように知るのでしょうか)。別のアイデアは、インスタンスを処理するある種のグローバル モジュールを使用することです。1 つのインスタンスだけにサービスを登録させ、他のすべてのインスタンスが失敗するように決定した場合、同じ問題が発生します。
- モジュールは、すべての初期化が完了したことを管理アプリケーションにどのように報告できますか? 私が理解している限り、CallbackContract は、ServiceContract のメソッド呼び出し中にコールバックを呼び出すためにのみ使用できます。管理アプリケーション自体でサービスを開始する必要がありますか? 管理アプリケーションは常に利用できるわけではないため、サーバーではなくクライアントと考えました。
java - Java 内で m ファイルを実行する
m ファイルに記述された matlab 関数があります。(私が書いたものではなく、複雑なアルゴリズムのようです) Java アプリケーションで使用したいと考えています。インターネットで検索し、Java 内で matlab コードを実行する方法を学びました。
たとえば、ここではそれを行う方法を示しています。しかし、関数が何をするのかわからないと、正確なmatlab関数をJavaでそのまま使用する方法を理解できません。誰かがこれを理解するのを手伝ってくれますか?
wcf - サーバーからクライアント アプリケーションへのデータのプッシュに関するアドバイスが必要
私は、セキュリティ オペレーターの PC で実行される物理的なセキュリティ アプリケーションを開発しています。
サーバー側では、煙センサー、リアルタイムでのアクセス制御などのサードパーティ システムからアラームを収集する Windows サービスがあります。サーバー アプリケーションは、アラームを SQL データベースに記録します。
アラームをサーバーからクライアント アプリケーション (セキュリティ オペレーター GUI) に即座にプッシュする必要があります。質問は :
アラームをクライアント アプリケーションの GUI に即座にプッシュする方法を教えてください。
すべてのサーバーとクライアントは .NET Framework 3.5 および 4.0 にあります
名前付きパイプ、wcf に関する記事を読んでいて、本当に混乱しています。
どんな助けでも大歓迎です。
multithreading - 長時間実行されるタスク、別のスレッドまたは別のプロセスで実行する必要がありますか?
私にはいくつかの長時間実行タスクがあり、それらはCPUとメモリを大量に消費します。それらを別のスレッドまたは別のプロセスで実行する必要がありますか?そして、各オプションの利点は何ですか?
c# - 私の状況で機能するIPCの形式
1-多くのクライアントにタスク(リロード)を実行するように通知する必要があります。サーバーは、特定の時点で実行されている場合と実行されていない場合があります。(このため、誰がクライアントで誰がサーバーであるかを定義するのに苦労しました。)
サーバーはいつでも実行を開始できます。サーバーが自動的に閉じると、サーバーはすべてのクライアントにタスクを実行するように通知します。
NamedPipeServerStream「クライアント」で複数のインスタンスを使用して実行してみました(関係が奇妙であることを忘れないでください。我慢してください)。残念ながら、特定のサーバー名に対して作成できるパイプサーバーは1つだけです。したがって、これは機能しませんでした。クライアントにサーバーを継続的にチェックさせることもできますが、ポーリングを開始する場合は、DBを直接ポーリングすることをお勧めします。
私の状況はおおよそオブザーバーパターンのようなものです。動的にサブスクライブ/サブスクライブ解除する必要はありません。サーバーがタスクを実行するために実行中のすべてのクライアントに通知をプッシュするようにしたいのですが。
どうすればこれを達成できますか?私はIPCでこれをしなければならないことを覚えておいてください。サーバー/クライアントは異なるプロセスで実行され、常に同じマシン上で実行されます。