2011-01-12 23 views
1

.NET(特にWPF)アプリケーションとバックグラウンドで実行されているMFCアプリケーションの間に名前付きパイプを設定するにはどうすればよいですか?私はXMLインスタンスを送信する同期および非同期のメッセージングを提供する必要があります。コールバックアーキテクチャを使用する方法はありますか?.NETとMFCの間に名前付きパイプを設定するにはどうすればよいですか?

+0

パイプが両方とも同じシステム上で実行されている場合、パイプは必須ですか?ローカル通信ではMMFが優れており、ネットワーク上で古いソケットが優れています。 –

+0

名前付きパイプは名前付きパイプです。特殊なメモリバッファです。どのアプリがサーバであり、どのアプリがクライアントであるかを判断するだけです。残りの部分はMFC、.NET固有のものですが、ドキュメントを読んでも難しくありません。 – Nickolodeon

答えて

0

MFCアプリケーションでは、特に名前付きパイプの助けとなるMFCクラスはありませんが、Windows Named Pipes APIはそれほど難しくありません。また、より高いレベルのソース/シェアウェアクラスを開くことができます抽象クラス(for example here

.NETアプリケーションでは、System.IO.Pipes名前空間の型は、使用するのがかなり簡単な名前付きパイプに対して優れたストリーム抽象化を提供します。あなたが作る必要があります

決定は、次のとおりです

  1. アプリケーションは、パイプを作成し、接続する他のアプリケーション(パイプクライアント)のためのリスニングを担当するパイプサーバー、です。
  2. OSが提供するメッセージストリーミングモード(パイプへの各書き込みは1つのメッセージとみなされます)で直接作業できますか、パイプバイトストリーム上に独自のメッセージフレーミングを構築する必要がありますか。

デュプレックス操作がサポートされているので、必要に応じてパイプメッセージを介して「コールバックアーキテクチャ」を構築できます。

Windows Communication Frameworkは、名前付きパイプトランスポートバインディングを提供します。しかし、WPFアプリケーション側でさえ、これはMFC側で再実装をしていない限り、部分的に文書化されたMicrosoftプロトコルのプロトタイプが生のパイプ通信の上にレイヤーされていない限りは役に立ちません(on my blogあなたは興味があります)。

+0

私は、要求/応答アーキテクチャを作成したいと考えています。名前付きパイプでもこのようなことができますか?サーバー/クライアントは、サーバーを待機している間に無駄に回転する必要がありますか? – Jordan

+0

名前付きパイプトランスポートを介して要求/応答アーキテクチャを構築することはできますが、名前付きパイプ自体はこれを提供しません。両サイドのAPIは、非同期IOパターンをサポートしています。 –

関連する問題