2台のマシン間で通信するために名前付きパイプを使用したことを覚えています(Windows NTに戻りました)。名前付きパイプは同じマシンのプロセス間通信専用であると読んだのはなぜですか?(VistaおよびWindows 7の場合)
2 に答える
OSインフラストラクチャとしての名前付きパイプは、マシン間の通信に完全に利用できます。名前付きパイプに関するMSDNドキュメントを参照してください。
名前付きパイプを使用して、同じコンピューター上のプロセス間、または ネットワーク上の異なるコンピューター上のプロセス間で通信を提供できます。 サーバーサービスが実行されている場合、すべての 名前付きパイプにリモートでアクセスできます。 名前付きパイプをローカルでのみ使用する場合は、NT AUTHORITY \ NETWORKへのアクセスを拒否するか、ローカルRPCに切り替えてください。
ただし、実際には同じマシンのみの通信であるWCFバインディング「NetNamedPipe」について話している可能性があると思います。なぜそうなるのかは、WCF設計チームに尋ねなければならないことです。私にはそれに関する情報がありません。
しかし、Stephen Cが正しく言っているように、(WCFでの)マシン間通信が必要な場合は、代わりにnetTcpBindingを使用してください。この2つは、機能、速度、機能セットがかなり似ています。
名前付きパイプについて.NET3.5で追加されたサポートについては、この記事を参照してください。
マーク
それらが非ローカルである場合、それらはソケットと呼ばれるためです。
編集:実際には、それはかなり派手なUNIX中心の答えです。UNIXでは、名前付きパイプはローカル通信専用です。対照的に、ソケットはローカル通信と非ローカル通信の両方に使用でき、さまざまなトランスポートプロトコルを使用できます。もう1つの違いは、それらを見つける方法にあります。名前付きパイプは通常、ファイルシステムの名前空間にあります。ソケット(より正確には、ソケットエンドポイント)は、ある種のネットワークアドレスによって識別されます。このネットワークアドレスは、通常、ある種のネームサーバー/サービスで検索されます。