2012-04-08 10 views
2

私は最近、javaとC++の間の通信に最適なIPCプロトコルを見つけなければなりませんでした。JavaとC++の間のIPCのためのSocketの賛否両論は何ですか?

私はこのための最良のプロトコルを見つけるためにSOを探しました。私はソケットがこれのための最良のアプローチであることを発見しました。しかし私はソケットの賛否両論について何も見つけられませんでした!だから私はこのプロトコルの賛否両論を知りたいと思っています。また、私のアプリケーションに最適なプロトコルを選択するために、他のプロトコルとソケットの賛否を知りたいと思っています。

私の2つのアプリケーションは、同じマシン上で動作している可能性が非常に高いです。

更新私はまず自分のプロトコルを選択してから、どのシステム構成で実行するか決定できます。最高のIPC方法は本当にあなたが持っている通信の種類によって異なり

+0

あなたが検討した他のオプションは何ですか? – dasblinkenlight

+0

メッセージを送信している場合や、ファイルを使用している場合もあります。 – Lrrr

+2

「マッサージ」ではなく、「メッセージ」を意味するのではないでしょうか? – dasblinkenlight

答えて

3

:、相互排他的な実行を確保し、渡すメッセージは、共有データは、IPC様々ですが、ソケットはすべて3

について考えてみてのためのソリューションではありませんアプリケーション間でどのような形式の情報を渡したいかに関する情報を提供することができます。おそらく、典型的なシナリオ(生産者 - 消費者の問題のような)を見つけるでしょう。

oldschool TCPサービスと原理的に似ている、メッセージの受け渡しに問題がある場合、ソケットは十分にテストされ、デバッグが容易であるため、良い考えです。それらは完全なデカップリングを提供しますが、カーネルは1つのアプリケーション(送信側または受信側)のブロッキングを効率的に行うことができるため、ローカルに実行するとパイプに比べて欠点はありません。

ソケットにはUDP、TCP、またはUnixソケットを使用できます。いずれの場合でも、ソケット付きのローカルIPCにはネットワークカードは必要ありません。

関連する問題