1

fork() を使用した Linux 上の複数プロセス実装プログラムの場合、親プロセスと子プロセス間の通信には socketpair() が使用されます。

上記のシナリオで、プロセス間で補助データを送信することの用途は何ですか? socketpair() は、すでに親と子の間の双方向通信を提供しています。2 つの子プロセス間でファイル記述子を共有することですか?

明確にするために、

  1. socketpair() 接続されたソケットを使用していつでもペイロードをやり取りできるのに、補助データの受け渡しが必要なのはなぜですか? ユースケースのシナリオは何ですか?
  2. 親で pipe() または socketpair() を作成し、フォークして子プロセスを作成できます。その後、親と子は、作成されたファイル記述子を介して通信できます。補助データ (UNIX ソケット経由) は、2つの子プロセス間の通信に役立ちますか?
4

2 に答える 2

0

検査しているソフトウェアの設計を理解していないと、それを判断するのは困難です。 socketpair()は、2 つのソケットの接続を作成し、各記述子を他のプロセスに渡す簡単な方法です。この方法では、bind()、accept()、connect() のコードをスキップできます。

于 2013-03-15T08:20:25.993 に答える