[Moscow.pm] Sync networking w timeouts

Vladimir Timofeev vovkasm на gmail.com
Вт Окт 2 10:01:07 PDT 2012


Привет!

2 октября 2012 г., 12:07 пользователь Mons Anderson <mons на cpan.org> написал:
> Всем привет. Я так давно работаю исключительно с AE, что совсем выпал из
> темы синхронных библиотек )
> Есть простейшая задача: tcp connect / host resolution / socket rw.
> Но! С жестко заданным таймаутом.

Если alarm не подходит. То далее, как я понимаю проблема только в резолвинге?
Тогда можно его отдельно сделать, через Net::DNS (не знаю насколько
это быстро получится).

>
> Всяческие IO::Socket* могут легко заблокироваться на неограниченное время,
> например на ресолве.
>
> Есть мысль написать что-то синхронное, аналогичное AnyEvent::Socket и
> AnyEvent::DNS, но с жестким контролем таймаутов.
> т.е. типа:
>
> my $fh = tcp_connect $host,$port, $timeout or die "connect failed: $!";
> my $rr = resolve in => A => "google.com", $timeout or die "resolution
> failed: $!";
>
> И аналогичное AE::Handle:
> my $data = $h->read( chunk => 42, $timeout ) or die "read failed: $!";
>
> Возможно кто-то может подсказать что-то готовое и без использования AE/EV?
>
> --
> Best wishes,
> Vladimir V. Perepelitsa aka Mons Anderson
> <inthrax на gmail.com>, <mons на cpan.org>
> http://github.com/Mons
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Vladimir Timofeev <vovkasm на gmail.com>


Подробная информация о списке рассылки Moscow-pm