2017-09-02 30 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

相關問題