パイプを使用したIPCを初めて使用しました。通常のパターンに慣れていません。ここに私が対処しなければならない設定があります。n個のサーバープロセスに作業を配布するクライアントプロセスがあります。終了後、サーバーは結果をサーバーに戻す必要があります。配布されなければならない作業の量は最初から分かっています。名前付きパイプを使用したn個のワーカープロセスの通信パターン
Client
|__Pipe 1_____ Server 1
|
|__Pipe 2_____ Server 2
|
|__ ...
私の考えは、これに対処する方法です。サーバーは、起動時に作成するパイプの名前を決定するコマンドライン引数で開始されます。クライアントは、これらのパイプに作業を配布するために書き込みます。サーバーは仕事を終えると、仕事を受け取ったパイプに結果を書き出します。クライアントはサーバからの結果をn個のスレッドで待ちます。すべての結果が到着すると、部分的な結果が組み立てられます。
これは意味があると思いますか?いずれかの方向に1本のパイプを使用する利点がありますか?どのようにアクセスを同期しますか?あなたはそのトピックに関する読書のヒントを持っていますか?
これは簡単です。クライアントは単に次の空きサーバに接続し、独自のパイプインスタンスを開きます。したがって、1本のパイプを使用するだけで十分です。 http://stackoverflow.com/questions/4570653/multithreaded-namepipeserver-in-c-sharpも参照してください。 – h0b0