2017-09-02 33 views
3

介绍为什么试图说服到服务器时,我的Perl脚本挂?

我跟着斯坦因的书“网络编程与Perl”。这是本书,这里的脚本试图使用正确的协议与白天的服务器,以获得来自服务器的响应的日期和时间沟通的第二个Perl脚本。

读一线从远程服务器

#!/usr/bin/perl 
# file: lgetr.pl 

use IO::Socket; 


my $server = shift; 
my $fh = IO::Socket::INET->new($server); 
my $line = <$fh>; 
printf $line; 

行书(已使其可执行使用chmod)

该书然后使用该服务器作为参数来连接。

wuarchive.wust1.edu:daytime

./lgetr.pl wuarchive.wust1.edu:daytime 

问题

执行时,程序只是挂起。我猜测程序正在等待服务器的响应。这是否意味着服务器不再存在?或者输入错误?我将如何得到这个工作,或将我最好的选择要创建我自己的daytime服务器? (我有一点在C这样的经历)

回答

6

尝尝这里提到的服务器:http://tf.nist.gov/tf-cgi/servers.cgi(先打上谷歌为“白天”)。

此外,请勿使用printf其中print已足够,尤其是在没有格式字符串的情况下。

而且,似乎你需要的第二行,不是第一个。

您可以使用一个循环来打印所有行来代替:

print while <$fh>; 

对我的作品有例如time.maconbibb.us:daytime

相关问题