use strict; use warnings; use AnyEvent; use AnyEvent::Handle::UDP; my $cv = AE::cv; my $comm_port = $ARGV[0] or die "missing port number"; my $server = AnyEvent::Handle::UDP->new( bind => [ localhost => $comm_port ], on_recv => sub { my ($datagram, $handle, $addr) = @_; if ($datagram =~ /^done/i) { $cv->send; } else { print $datagram; } }, rtimeout => 10, on_rtimeout => sub { warn "Timeout!\n"; $cv->send } ); print "Waiting for Response On Port $comm_port\n"; $cv->recv;