#!/usr/bin/perl $|++; use IO::Socket; use IO::Select; my $lsn = IO::Socket::INET->new( Listen => 10, LocalAddr => 'localhost', LocalPort => 9000 ); my $client = new IO::Select( $lsn ); while( my @ready = $client->can_read ) { for my $fh (@ready) { if($fh == $lsn) { warn "Accepted new socket\n"; my $new = $lsn->accept; $client->add($new); } else { # process socket sysread($fh, $_, 1 ); print; # NB syswrite(STDOUT,$_,1) will be unbuffered by default } } }