2011-06-27 13 views
4

UDPを介してローカルWindowsマシン上のIPC(Inter Process Comunication)に名前付きパイプが適しているのはなぜですか?あるいは、UDPが時々どこかで良いかもしれませんか?名前付きパイプとWindows上のIPC用のUDP

+1

TCPは問題なく、信頼性の低いトランスポートメカニズムはIPCにとっては役に立たない。 –

+0

どういう意味なのか説明できますか? – MajesticRa

+0

まず、UDPを使用する理由を説明します。 –

答えて

5

localhostでもUDPパケットが失われる可能性があります。また、UDPはデータグラムベースであり、保証された配信がないため、より大きなデータブロックを転送することは困難です。最後に、localhostのUDPがブラウザによってブロックされることがあります。一般に、UDPは通常、単一コンピュータのIPCには考慮されていません。

Windowsでは、メモリマップファイル+同期プリミティブを、最も高速でおそらく最も簡単な方法としてお勧めします。名前付きパイプは、通常はうまく動作しますが、名前付きパイプをどのように動作させるかについては、ここではたくさんの質問があります(MMFに関する一件の不満はまだありません)。

私たちはローカル、またはネットワークを介してIPCに適したソケット、UDP、MMFベースのトランスポートを提供するMsgConnectという製品を用意しています。名前付きパイプはサポート対象と考えられていましたが、そのアイデアは他の仕組みに捨てられました。

+0

ありがとうございました! – MajesticRa

+0

名前付きパイプは、シンプルで信頼性が高く、メモリマップファイルよりもIPCに柔軟性があります。名前付きパイプ機能は.NET環境に組み込まれており、使いやすいです。名前付きパイプを使用すると、サーバーまたはクライアントをネットワーク上の他のコンピュータに移動できます。メモリマップされたファイルでは、同期を管理する必要があります。クライアントまたはサーバーを別のコンピュータに移動する必要がある場合は、最初からIPCコードを書き直してください。 –

関連する問題