Robotics
view release on metacpan or search on metacpan
lib/Robotics/Tecan/Server.pm view on Meta::CPAN
my $port = $params{port} || 8088;
my $socket = IO::Socket::INET->new( Proto => 'tcp',
LocalPort => $port,
Listen => SOMAXCONN,
Reuse => 1);
die "cant open network on port $port" unless $socket;
my $client;
my $hostinfo;
my $cdata;
print STDERR "Robotics::Tecan network server is ready on port $port.\n";
while ($client = $socket->accept()) {
$client->autoflush(1);
print $client "Welcome to $0\n";
$hostinfo = gethostbyaddr($client->peeraddr);
printf STDERR "\tConnect from %s on port $port\n",
$hostinfo ? $hostinfo->name : $client->peerhost;
# Cheap authentication
print $client "login:\n";
while ($cdata = <$client>) {
$cdata =~ s/\n\r\t\s//g;
last if ($cdata =~ /^$params{password}\b/);
print $client "login:\n";
print STDOUT "\t\t$cdata\n";
}
print $client "Authentication OK\n";
printf STDERR "\tAuthenticated %s on port $port\n",
$hostinfo ? $hostinfo->name : $client->peerhost;
# Run commands
my $result;
while (<$client>) {
next unless /\S/; # blank line
last if /end/oi;
( run in 0.638 second using v1.01-cache-2.11-cpan-454fe037f31 )