#! perl -slw
use strict;
use threads;
use IO::Socket;
$\ = $/ = chr(13).chr(10);
my $lsn = IO::Socket::INET->new( Reuse => 1, Listen => 1, LocalPort => 12345 )
or die "Server failed to create listener: $^E";
print "Server listener created";
while( my $client = $lsn->accept ) {
print "Server accepting client connection";
async {
while( my $in = <$client> ) {
chomp $in;
## printf "\rServer echoing client input: '%s'", $in;
print $client $in;
}
print "Server shutting down";
shutdown $client, 2;
close $client;
}->detach;
}
####
#! perl -slw
use strict;
use Time::HiRes qw[ time ];
use IO::Socket;
our $R //= 1;
$\ = $/ = chr(13).chr(10);
my $svr = IO::Socket::INET->new( "localhost:12345" )
or die "Client: First client connect failed $^E";
print "Client connected";
my $last = time;
my $exchanges = 0;
while( 1 ) {
print {$svr} "Hello"x $R or die "$! / $^E";
chomp( my $in = <$svr> );
++$exchanges;
if( int(time()) > int($last) ) {
printf "Rate: %.f exchanges/sec)\n",
$exchanges / ( time() - $last );
$last = time;
$exchanges = 0;
}
}
##
##
[10:18:14.83] C:\test>for /L %i in ( 1,1,1) do @start /B t-sockCC -R=1
[10:22:34.94] C:\test>Client connected
Rate: 21485 exchanges/sec)
Rate: 22023 exchanges/sec)
Rate: 21923 exchanges/sec)
...
##
##
[10:22:38.82] C:\test>for /L %i in ( 1,1,3) do @start /B t-sockCC -R=1
[10:22:43.80] C:\test>Client connected
Client connected
Client connected
Rate: 16958 exchanges/sec)
Rate: 16606 exchanges/sec)
Rate: 17124 exchanges/sec)
Rate: 17962 exchanges/sec)
Rate: 17832 exchanges/sec)
Rate: 17982 exchanges/sec)
Rate: 18066 exchanges/sec)
Rate: 17963 exchanges/sec)
Rate: 18069 exchanges/sec)
Rate: 17956 exchanges/sec)
Rate: 17953 exchanges/sec)
Rate: 17917 exchanges/sec)
...
##
##
[10:22:47.85] C:\test>for /L %i in ( 1,1,10) do @start /B t-sockCC -R=1
[10:22:54.26] C:\test>Client connected
Client connected
Client connected
Client connected
Client connected
Client connected
Client connected
Client connected
Client connected
Client connected
Rate: 5931 exchanges/sec)
Rate: 5852 exchanges/sec)
Rate: 6870 exchanges/sec)
Rate: 5446 exchanges/sec)
Rate: 6356 exchanges/sec)
Rate: 6394 exchanges/sec)
Rate: 6207 exchanges/sec)
Rate: 6286 exchanges/sec)
Rate: 6730 exchanges/sec)
Rate: 5699 exchanges/sec)
Rate: 6337 exchanges/sec)
Rate: 6273 exchanges/sec)
Rate: 6373 exchanges/sec)
Rate: 6134 exchanges/sec)
Rate: 6138 exchanges/sec)
Rate: 6139 exchanges/sec)
Rate: 6103 exchanges/sec)
Rate: 6052 exchanges/sec)
Rate: 6095 exchanges/sec)
Rate: 6289 exchanges/sec)
Rate: 6236 exchanges/sec)
Rate: 6482 exchanges/sec)
Rate: 6468 exchanges/sec)
Rate: 6274 exchanges/sec)
Rate: 6461 exchanges/sec)
Rate: 6413 exchanges/sec)
Rate: 6241 exchanges/sec)
Rate: 6207 exchanges/sec)
Rate: 6172 exchanges/sec)
Rate: 6241 exchanges/sec)
...