简介
我跟随着这本书"使用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
问题
执行时,程序就会挂起。我猜测程序正在等待服务器的响应。这是否意味着服务器不再存在?或者输错了?我怎么能让这个工作,或者我最好的选择是创建我自己的日间服务器? (我在C中有一点经验)
答案 0 :(得分:6)
尝试一下这里提到的一些服务器:http://tf.nist.gov/tf-cgi/servers.cgi(Google第一次点击&#34;白天&#34;)。
另外,请勿printf print使用{{3}}就足够了,尤其是在没有格式字符串的地方。
此外,您似乎需要第二行,而不是第一行。
您可以使用循环来打印所有行:
print while <$fh>;
适用于我,例如time.maconbibb.us:daytime
。