「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
プロセス間通信についてまとめた。
詳細 †
基本 †
- 共有メモリ、パイプ(名前付き/匿名)、UDP/TCPなどがある。
- 子プロセスとの通信なら匿名パイプを使用すると良い。
共有メモリ †
パイプ †
- 名前付きパイプ
- 名前付きパイプを使用して、プロセス間通信を行う場合、
パイプ・オブジェクトの始点と終端を2プロセス間で持つ。
- このとき、パイプ・オブジェクトをIDのようなもので
識別するのが、名前付きパイプになる。
- 従って、名前付きパイプの場合、
2プロセスがパイプ名を共有している必要がある。
- 匿名パイプ
- 一方、匿名パイプは、名前が無いので、名前で共有できない。
- その代りに、親プロセス側から、子プロセス側に、ハンドラを複製して渡す。
(従って、匿名パイプは、親子プロセス間通信での利用が一般的になる)
- このハンドラの複製に、
- Windows OSでは、DuplicateHandle?関数を使用し、
- Unix系OSでは、fork関数を使用する。
UDP †
TCP †
その他 †
- WCF (Windows Communication Foundation)
参考 †
OpenTouryoProject?/SampleProgram? · GitHub †
InterProcComm? at master †
https://github.com/OpenTouryoProject/SampleProgram/tree/master/Other/InterProcComm
PipesFamilyHouse? at master †
https://github.com/OpenTouryoProject/SampleProgram/tree/master/Other/PipesFamilyHouse
- AnonymousPipe?(匿名パイプによる親子プロセス間通信)
- StdIOAndPipe?(標準入出力による親子プロセス間通信)
Tags: :プログラミング, :その他、開発の色々, :.NET開発