От Stas Mishchenkov (2:460/5858) к Eugene Grosbein
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
SM>> Имеем такой код:
SM>> my $sock = IO::Socket::IP->new(PeerAddr => $host,
SM>> PeerPort => $portaddress,
SM>> Timeout => 15,
SM>> Proto => 'tcp') || print "error $!\n" &&
SM>> return " $host - Error $!\n";
SM>> с некоторыми хостами, например, joesbbs.com:24554, может провисеть при
SM>> попытке соединения несколько часов. По таймауту не отваливается. Что я не
SM>> так делаю или как заставить его всё-таки выдавать ошибку по таймауту?
EG> Для начала перестань предполагать, что print всегда успешен
EG> и больше не пиши print "error $!\n" && return
EG> print тоже может обломаться и вернуть ложь
EG> (вывод перенаправлен в файл и место кончилось, или вывод уходит
EG> в сетевой сокет и локальный файрвол зарезал соединение и т.д.)
EG> А по сути - работа таймаутов системно-зависима, что у тебя за версия
EG> Perl и операционной системы?
--- Не откладывайте на завтра - кладите на всё уже сегодня.
* Origin: Lame Users Breeding. Simferopol, Crimea. (2:460/5858)
Ответы на это письмо: