Perl 中是否有一种机制可以在两个独立的进程之间共享一个套接字——在 Linux 中无需分叉或线程?
我认为不会,但这个答案让我相信这是可能的:https ://stackoverflow.com/a/1139425/1170839
我想在一个进程上创建一个监听套接字,并允许另一个进程接受/读/写它。
Perl 中是否有一种机制可以在两个独立的进程之间共享一个套接字——在 Linux 中无需分叉或线程?
我认为不会,但这个答案让我相信这是可能的:https ://stackoverflow.com/a/1139425/1170839
我想在一个进程上创建一个监听套接字,并允许另一个进程接受/读/写它。
正如您发布的链接所示,在许多 UNIXy 系统上,文件描述符可能会通过本地域套接字传递。例如,特权进程可以打开/准备一个 fd,然后将其发送给非特权进程以供使用。
Socket::MsgHdr为 perl 公开了此功能,并包含文件描述符传递的示例。
要走的路是使用POE。POE 使 perl 中的多线程变得非常容易,并且就是为此而设计的。POE 是用于事件驱动的多线程应用程序的 CPAN 框架。毫无疑问,在 Perl 中执行此操作的最简单和最好的方法是 POE。当这一切都已经完成并且经过很好的测试时,没有理由重新发明它。
看:
http://poe.perl.org/?Evolution_of_a_POE_Server和 http://poe.perl.org/?POE_Cookbook/TCP_Servers