#!/usr/bin/perl
use strict;
use Socket;
use IO::Socket::INET;
use AnyEvent::Socket;
use AnyEvent::Handle;

my $cv = AnyEvent->condvar;

my $hdl;

warn "listening on port 34832...\n";

AnyEvent::Socket::tcp_server undef, 34832, sub {
   my ($clsock, $host, $port) = @_;
   print "Got new client connection: $host:$port\n";

   $hdl =
      AnyEvent::Handle->new (
         fh => $clsock,
         on_eof => sub { print "client connection $host:$port: eof\n" },
         on_error => sub { print "Client connection error: $host:$port: $!\n" }
      );

   $hdl->push_write ("Hello!\015\012");

   $hdl->push_read (line => sub {
      my (undef, $line) = @_;
      print "Yay, got line: $line\n";
      $hdl->push_write ("Bye\015\012");
      $hdl->on_drain (sub { $hdl->fh->close; undef $hdl });
   });
};

$cv->wait;
