Forums Neueste Beiträge
 

Alarm unter Windows XP

17/07/2012 - 13:09 von Klaus Ketelaer | Report spam
Hallo zusammen,

ich habe ein Skript geschrieben, das von etwa 500 Servern per UDP
Daten ausliest.

Weil manche Server nicht antworten, musste ich einen Timeout
einbauen, der auch unter Linux einwandfrei funktioniert. Nur unter
Windows verhungert mir das Skript. Ich verwende
ActivePerl-5.12.3.1204-MSWin32-x86-294330.


$socket = new IO::Socket::INET (
PeerAddr => $host,
Proto => 'udp'
) or die "ERROR in Socket Creation : $!";


$socket->send($query);

eval {
local $SIG{ALRM} = sub { print "Host $host antwortet nicht!";
};
alarm(2);
$socket->recv($data, 4096);
alarm(0);
};

$socket->close();

Obwohl ich seit Stunden am googeln bin, finde ich keinen Weg, eine
Lösung zu basteln, die unter Windoof und Linux làuft.

Wer erlöst mich aus meiner Ratlosigkeit?

Gruß

Klaus
 

Lesen sie die antworten

#1 Frank Seitz
17/07/2012 - 15:49 | Warnen spam
Klaus Ketelaer wrote:

ich habe ein Skript geschrieben, das von etwa 500 Servern per UDP
Daten ausliest.

Weil manche Server nicht antworten, musste ich einen Timeout
einbauen, der auch unter Linux einwandfrei funktioniert. Nur unter
Windows verhungert mir das Skript. Ich verwende
ActivePerl-5.12.3.1204-MSWin32-x86-294330.


$socket = new IO::Socket::INET (
PeerAddr => $host,
Proto => 'udp'
) or die "ERROR in Socket Creation : $!";


$socket->send($query);

eval {
local $SIG{ALRM} = sub { print "Host $host antwortet nicht!";
};
alarm(2);
$socket->recv($data, 4096);
alarm(0);
};

$socket->close();

Obwohl ich seit Stunden am googeln bin, finde ich keinen Weg, eine
Lösung zu basteln, die unter Windoof und Linux làuft.

Wer erlöst mich aus meiner Ratlosigkeit?



Das liegt vermutlich daran, dass Windows keine Signale kennt
und alarm() daher nicht das Gewünschte tut (gibt es keine
Warnung oder Fehlermeldung?). Suche per Google doch mal
unter diesem Gesichtspunkt, bin kein Windows-Experte.

Grüße
Frank
Dipl.-Inform. Frank Seitz
Anwendungen für Ihr Internet und Intranet | Web-, Database-, Unix-Development
Tel: +49 (0)176/78243503, Hermann-Rohwedder-Straße 16, D-25462 Rellingen

Blog: http://www.fseitz.de/blog

Ähnliche fragen