1

Linuxでフォークやスレッド化を行わずに、2つの別々のプロセス間でソケットを共有するメカニズムはPerlにありますか?

私はノーと思いますが、この答えはそれが可能であると私に信じさせます:https ://stackoverflow.com/a/1139425/1170839

あるプロセスでリスニングソケットを作成し、別のプロセスがそれを受け入れ/読み取り/書き込みできるようにしたい。

4

2 に答える 2

6

あなたが投稿したリンクが示すように、多くの UNIXy システムでは、ファイル記述子がローカル ドメイン ソケットを介して渡される場合があります。たとえば、特権プロセスは fd を開いて準備し、非特権プロセスに送信して使用することができます。

Socket::MsgHdrは perl 用にこの機能を公開し、ファイル記述子の受け渡しの例を含んでいます。

于 2012-05-01T19:57:52.943 に答える
-1

行く方法は、POEを使用することです。POE は perl でのマルチスレッド化を驚くほど簡単にし、まさにこのために設計されています。POE は、イベント ドリブン マルチスレッド アプリケーション用の CPAN フレームワークです。確かに、Perl でこれを行う最も簡単で最良の方法は POE です。すべてが以前に行われ、十分にテストされている場合、これを再発明する理由はありません。

見る:

http://poe.perl.org/?Evolution_of_a_POE_Serverおよび http://poe.perl.org/?POE_Cookbook/TCP_Servers

于 2012-05-01T19:53:46.367 に答える