我正在使用带套接字的 IPC。
我试图理解为什么我无法从中获取此示例脚本perldoc perlipc
在我的 Ubuntu 设置上运行:
#!/usr/bin/perl -w
use IO::Socket;
$remote = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => "localhost",
PeerPort => "daytime(13)",
)
|| die "can't connect to daytime service on localhost";
while (<$remote>) { print }
该脚本die
是因为TCP客户端无法建立。
运行$ less /etc/services
表明我daytime(13)
已经定义了。这里可能出了什么问题?
答案1
您是否正在运行提供日间服务的服务?从维基百科:
在类 UNIX 操作系统上,日间服务器通常内置于 inetd(或 xinetd)守护进程中。默认情况下通常不启用该服务。可以通过将以下行添加到文件 /etc/inetd.conf 并告诉 inetd 重新加载其配置来启用它。
daytime stream tcp nowait root internal
daytime dgram udp wait root internal
因此,您必须在 inetd.conf 中启用日间服务。