为什么这个简单的 Perl 客户端不起作用?

为什么这个简单的 Perl 客户端不起作用?

我正在使用带套接字的 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 中启用日间服务。

相关内容