0
我正在使用以下代碼。我想超時並在20秒後關閉連接,嘗試報警但沒有任何工作。這裏是我的代碼:無法超時
my $socket_resp = IO::Socket::INET->new(Blocking => 0, LocalPort => $comm_port, Proto => 'udp', Timeout => 2);
$socket_resp->setsockopt(SO_RCVTIMEO, SO_RCVTIMEO, 10);
print "Waiting for Response On Port $comm_port\n";
while (my $recieved_data = $socket_resp->getline()) {
chomp($recieved_data);
print "$recieved_data\n";
if ($recieved_data =~ m/^done/i) {
last;
}
}
$socket_resp->close();
你試過了嗎:[如何獲得IO :: Socket :: INET超時後X秒?](http://stackoverflow.com/questions/3570440/perl-how-to-get-iosocketinet-timeout-after-x-seconds) – 2012-07-17 12:28:39
你想要一個總的套接字壽命at最多20秒,或者每個* getline()調用20秒耐心? – pilcrow 2012-07-17 13:23:15
您可能需要[回頭查看您的問題](http://stackoverflow.com/users/1065000/user1065000?tab=questions)和[接受答案](http://stackoverflow.com/faq#howtoask)幫助你。 – simbabque 2012-07-17 14:47:28