use 5.010; use strict; use warnings; use AnyEvent; use AnyEvent::Handle; use IO::Socket::INET; my $sock1 = IO::Socket::INET->new( PeerAddr => '127.0.0.1', PeerPort => 7777, LocalPort => 6666, ReuseAddr => 1, ) or die $!; my $ah1; $ah1 = AnyEvent::Handle->new( fh => $sock1, on_read => \&send_echo ); my $sock2 = IO::Socket::INET->new( PeerAddr => '127.0.0.1', PeerPort => 7778, LocalPort => 6666, ReuseAddr => 1, ) or die $!; my $ah2; $ah2 = AnyEvent::Handle->new( fh => $sock2, on_read => \&send_echo ); AE::cv->recv; sub send_echo { my $handle = shift; $handle->push_write( substr $handle->{rbuf}, 0, length $handle->{rbuf}, '' ); }