#!/afs/athena/contrib/perl/perl

require 'sys/socket.ph';

$sockaddr = 'S n a4 x8';

$proto = (getprotobyname('tcp'))[2];
$port = $ARGV[0] || 7999;
$port = pack($sockaddr, &AF_INET, $port, "\0\0\0\0");

socket(S, &AF_INET, &SOCK_STREAM, $proto) || die "Can't open socket: $!";
bind(S, $port) || die "Can't bind socket: $!";
listen (S, 5);

while(1) {
   accept(NS, S);
   select (NS);
   $| = 1;

   $len = <NS>;
   $len =~ tr/\n\r//d;  # get rid of CRLF

   $lenr = read(NS, $line, $len);
   print NS ("I expected $len chars, received $lenr: $line\n");
   close NS;
   }

