Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Perl] предложите какое- нибудь решение 02.11.02 13:23 Число просмотров: 1125
Автор: vp016 Статус: Незарегистрированный пользователь
|
> Привет всем... > Нужно соединится через сокет с сервисом и при этом > использовать таймаут. С процедурой alarm не работает(у > меня апачи и перл под win32, а alarm под винду не работает > )... > Может предложите какое- нибудь решение под win32 или > пришлите пример работающий скрипта.. > Заранее благодарствую за помощь... При сoздании сокета:
use IO::Socket;
my $sock = new IO::Socket::INET (...., Timeout => $timeout);
select поможет при чтении.
sub tsysread {
my $sock = shift|return (-1);
my $buff = shift|return (-1);
my $size = shift|return (-1);
my $rn;
my $n;
vec ($rn, fileno($$sock), 1) = 1;
$n = select ($rn, undef, undef, $timeout);
if ($n) {
sysread ($$sock, $$buff, $size);
} else {
return (-1);
}
}
Работало без проблем на всех платформах.
|
|
|