Instead of forking, why not use IO::Socket::INET and the Timeout option? It's a standard module, so you should already have it. It'll make things much easier... Like, this easy:
#!/usr/bin/perl use warnings; use strict; use IO::Socket::INET; our @port_range = qw( 8080 6969 80 8081 8080 8000 3128 555 657 889 1180 1181 1182 1183 1184 1185 11012 25318 25719 6969 886 ); # this will be populated dynamically from a DB our @ip_list = qw( 196.2.49.19 grunt.mweb.co.za mweb.co.za ); foreach my $host (@ip_list) { foreach my $port (@port_range) { my $sock = IO::Socket::INET->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp', Timeout => 10, # 10 second time-out ) or next; # Didn't work, so try next port print "Connection established to $host on $port.\n"; $sock->close(); } }
bbfu
Black flowers blossom
Fearless on my breath
In reply to (IO::Socket::INET) Re: New Child to Wait for First Child to Die
by bbfu
in thread New Child to Wait for First Child to Die
by spike_hodge
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |