my $sock = new IO::Socket::INET( PeerAddr => "igs.joyjoy.net", PeerPort => "6969", Proto => "tcp" ); my $sender = new threads( \&sender => $sock ); my $listener = new threads( \&listener => $sock ); $sender->join; $listener->join; exit; sub sender { my $sock = shift; print $sock $_ while <>; } sub listener { my $sock = shift; while( $sock->connected ) { my $msg = ""; my $sock_addr = recv( $sock, $msg, 1024, 0 ); unless( defined $sock_addr ) { die "socket error"; } SHOW: { local $| = 1; print $msg; } } }