C# で複数サーバー クライアント アプリケーションを使用しています。私の要件は、異なるクライアント間でいくつかの float 値を交換することです。どの IPC メカニズムが最適で使いやすいですか。共有メモリが最も単純であると読みましたが、C# では安全でないコードと見なされるポインターを使用しています。他のメカニズムを教えてください。コード例は大歓迎です。
4389 次
1 に答える
1
最善の方法は、WCF 名前付きパイプを使用することです。主な手続きをご紹介します。
- たとえば、IServerActions と IClientActions の 2 つのインターフェイスを定義します。IServerActions は、クライアント アプリケーションによって呼び出されるメソッドを定義します。IClientActions は、サーバーが個別に呼び出すメソッドまたはブロードキャストするメソッドを定義します。IServerActions には Register メソッドを含める必要があります。
- クライアント アプリケーションとサーバー アプリケーションに 2 つのインターフェイスを実装します。実装クラスは、アプリ内のメイン フォームまたは任意のシングルトン クラスである可能性があります。
- クライアントからサーバーへの通信とサーバーからクライアントへの通信は似ており、名前付きパイプ チャネルを作成し、メソッドを呼び出します。クライアントは一意の ID (例: Guid.NewGuid()) を取得し、サーバーに登録します。サーバーはクライアントIDのリストを維持し、メッセージをブロードキャストするための個別のチャネルを作成できます(あなたの場合は浮動小数点数を送信します)
.NET C# でのソリューションの良い例を次に示します。
http://www.codeproject.com/Articles/7176/Inter-Process-Communication-in-NET-Using-Named-Pip
于 2012-06-12T19:28:46.973 に答える