在Perl中的进程之间共享套接字(没有fork)?

时间:2012-05-01 19:43:31

标签: perl sockets

Perl中是否有一种机制可以在两个独立的进程之间共享一个套接字 - 在Linux中没有分叉或线程?

我会假设不,但这个答案让我相信它是可能的:https://stackoverflow.com/a/1139425/1170839

我想在一个进程上创建一个侦听套接字,并允许另一个进程接受/读/写它。

2 个答案:

答案 0 :(得分:6)

在许多UNIX系统上,如您发布的链接所示,文件描述符可以通过本地域套接字传递。例如,特权进程可以打开/准备fd,然后将其发送到非特权进程以供使用。

Socket::MsgHdr为perl公开了这个功能,并包含文件描述符传递的示例。

答案 1 :(得分:-1)

要走的路是使用POE。 POE使perl中的多线程变得非常容易,并且就是为此而设计的。 POE是用于事件驱动的多线程应用程序的CPAN框架。在Perl中,最简单和最好的方法是POE。没有理由重新发明这一切,以前完成所有这些并经过如此充分的测试。

请参阅:

http://poe.perl.org/?Evolution_of_a_POE_Serverhttp://poe.perl.org/?POE_Cookbook/TCP_Servers