http://qs1969.pair.com?node_id=490689


in reply to Building a simple service scanner with POE

Since you only want the connection status, you probably should use the POE::Wheel::SocketFactory instead of the component (which is built on top of SocketFactory). Something like the following:( not tested, not even syntax)
use strict; use POE; use POE::Wheel::SocketFactory; my $task = [ { name => 'www.example.com', proto => 'tcp', port => 80 }, { name => 'smtp.example.com', proto => 'tcp', port => 25 }, { name => 'ns.example.com', proto => 'udp', port => 53 }, ]; for my $t( @$task ) { POE::Wheel::SocketFactory->new( RemoteAddress => $t->{host}, RemotePort => $t->{port}, SocketProtocol => $t->{proto}, SuccessEvent => sub { print "$t->{host}:$t->{proto}:$t->{port} up\n"; $poe_kernel->yield( 'shutdown' ); }, FailureEvent => sub { print "$t->{host}:$t->{proto}:$t->{por +t} down\n" }, ); } $poe_kernel->run();