470,614 Members | 1,425 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,614 developers. It's quick & easy.

Imposing a timeout on the <> operator - is this possible?

Hi all

I have code that polls a number of machines on our network and
retrieves stats from each one.

This is done via HTTP

This morning the program hung. When I started investigating I found
that one of the remote machines was in some kind of strange state. You
could ping it. You coud connect to it (HTTP, Telnet, FTP) but you got
no response.

So my program opens up a socket, fires off the HTTP request and then
waits for a response from apache, and waits, and waits, and waits...

The relevant portion of the code looks like this...

# open a socket...
$socket = IO::Socket::INET->new(PeerAddr => $netaddr,
PeerPort => 80,
Proto => "tcp",
Timeout => 10)
or die "Couldn\'t open the socket!!!!";

# form the HTTP request
$request = "GET $url HTTP\/1.0\n\n";

# request the file...
print $socket $request;

# process the output and strip out the response headers
$printit = 0;
# ...now read the socket and process the output
while($line = <$socket>){

# do some stuff with $line
}

The program hangs at the <> operator.

OK... a wierd situation and not a common one, but I want to improve
the code. Specificially when I invoke <> I'd like to be able to impose
a time out so that if I get nothing back after n seconds I can raise
an error condition and start interrogating the next site.

TIA

Bob Dubery
Jul 19 '05 #1
1 2175
JSM
me******@hotmail.com (Bob Dubery) wrote in message news:<e8**************************@posting.google. com>...
OK... a wierd situation and not a common one, but I want to improve
the code. Specificially when I invoke <> I'd like to be able to impose
a time out so that if I get nothing back after n seconds I can raise
an error condition and start interrogating the next site.


You can use alarm to do this. There is an example in the Perl Cookbook (16.21).
Jul 19 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by Donald Firesmith | last post: by
14 posts views Thread by Dave | last post: by
3 posts views Thread by ajay2552 | last post: by
14 posts views Thread by urikaluzhny | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.