マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

プロセス間通信についてまとめた。

詳細

基本

  • 共有メモリ、パイプ(名前付き/匿名)、UDP/TCPなどがある。
  • 子プロセスとの通信なら匿名パイプを使用すると良い。

共有メモリ

パイプ

  • 名前付きパイプ
    • 名前付きパイプを使用して、プロセス間通信を行う場合、
      パイプ・オブジェクトの始点と終端を2プロセス間で持つ。
    • このとき、パイプ・オブジェクトをIDのようなもので
      識別するのが、名前付きパイプになる。
  • 従って、名前付きパイプの場合、
    2プロセスがパイプ名を共有している必要がある。
  • 詳細については、下記の「NdPipe.xaml.cs」を参照のこと。
  • 匿名パイプ
    • 一方、匿名パイプは、名前が無いので、名前で共有できない。
    • その代りに、親プロセス側から、子プロセス側に、ハンドラを複製して渡す。
      (従って、匿名パイプは、親子プロセス間通信での利用が一般的になる)
  • このハンドラの複製に、
    • Windows OSでは、DuplicateHandle?関数を使用し、
    • Unix系OSでは、fork関数を使用する。
  • 参考

UDP

  • コネクションレス型の通信
  • 実装については、下記の「UDP.xaml.cs」を参照のこと。

TCP

  • コネクション型の通信
  • 実装については、下記の「TCP.xaml.cs」を参照のこと。

その他

RPC

  • DCE/RPC
    • DCOM
    • .NET Remoting
  • Webサービス
    • XML-RPC
    • JSON-RPC
  • WCF (Windows Communication Foundation)

ウィンドウ・システム > ウィンドウ メッセージ

POSIX

  • UNIXドメインソケット
  • POSIXメッセージキュー

参考

POSIX

Wikipedia

その他

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開発


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-09 (金) 14:23:04 (8d)