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();