use IO::Socket::UNIX;
use strict;
my $server = new IO::Socket::UNIX -> new ( Local => "$ROOT/envSocket",
Type => SOCK_STREAM,
Reuse => 1,
Listen => 147 );
[ ... error handling ... ]
while ( 1 )
{ my $client = $server => accept();
if ( defined $client )
{ eval
{ while(<$client>)
{ $Todo .= $_; chomp($Todo); }
}
if ( $@ ) { ... }
if ( $Todo ) { ... process work ... }
close $client;
}
}
####
use IO::Socket::UNIX;
use strict;
my $server = new IO::Socket::UNIX -> new ( Peer => "$ROOT/envSocket",
Type => SOCK_STREAM,
Timeout => 10 );
[ ... error handling ... ]
print $server "$Todo\n";
shutdown ( $server, 1 );
while ( <$server> )
{ $answer .= $_;
}
shutdown ( $server, 2 );
close $server;
...
}
##
##
50,000 records processed: ( results are number/second )
1 process | client/server
Writes: 2,953 | 1,152
ReadNext: 35,138 | 2,870
ReadPrev: 34,236 | 2,616