|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 05 Nov 2001 12:31:13 To : Yuriy Kaminskiy Subject : Re: Socket маст дай -------------------------------------------------------------------------------- Здравствуй, Yuriy Kaminskiy. YK> >> Конечно есть подозрение че у меня ручки не с того места ростут но YK> >> у меня не получается вот допустим так : my YK> >> $client=IO::Socket::INET->new(PeerAddr=>"64.58.76.227",PeerPort=>4001,Pr YK> >> oto= "tcp",Type=>SOCK_STREAM,Timeout=>1) or die "ERROR\n"; По идее через YK> >> "1" (Кстати Timeout в сек. или мин.) должно было умереть а у меня оно YK> >> ждало 12 минут (засекал). Помогите, вправьте ручки :) AC>> Вообще да, есть ощущение, что он сломан... Только непонятно, как AC>> именно. То есть понятно, почему таймаут не будет работать под AC>> виндой - ну нету там alarm(). Желающие подробностей да сделают AC>> RTFS, sub connect, там все написано. YK> Сделал (IO-1.20). Hичё не понимаю. Какой alarm? Вся обработка YK> таймаутов на connect лежит в IO::Socket, и там никаких alarm'ов нету - YK> non-blocking connect и IO::Select->can_write по неудаче. Может, и починили. У меня 1.1603. my $timeout = ${*$fh}{'io_socket_timeout'}; local($SIG{ALRM}) = $timeout ? sub { undef $fh; } : $SIG{ALRM} || 'DEFAULT'; eval { croak 'connect: Bad address' if(@_ == 2 && !defined $_[1]); if($timeout) { defined $Config{d_alarm} && defined alarm($timeout) or $timeout = 0; } my $ok = connect($fh, $addr); alarm(0) if($timeout); croak "connect: timeout" unless defined $fh; -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/63598f552794.html, оценка из 5, голосов 10
|