|
|
|
|
@ -4,34 +4,28 @@ use strict;
|
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
|
|
use IO::Socket::INET;
|
|
|
|
|
|
|
|
|
|
my $num_args = $#ARGV + 1;
|
|
|
|
|
if ( ($num_args == 0) or
|
|
|
|
|
(($num_args == 1) && (($ARGV[0] eq "--help") or ($ARGV[0] eq "-h"))) )
|
|
|
|
|
{
|
|
|
|
|
showusage();
|
|
|
|
|
exit;
|
|
|
|
|
}
|
|
|
|
|
use Getopt::Long;
|
|
|
|
|
|
|
|
|
|
my $argumentstring = "";
|
|
|
|
|
my $ip = "127.0.0.1";
|
|
|
|
|
my $port = "9900";
|
|
|
|
|
my $port = 9900;
|
|
|
|
|
|
|
|
|
|
for (my $argnum=0; $argnum <= $#ARGV; $argnum++) {
|
|
|
|
|
if ($ARGV[$argnum] eq "-ip") {
|
|
|
|
|
die "No argument after -ip\n" unless $argnum+1<=$#ARGV;
|
|
|
|
|
$argnum = $argnum+1;
|
|
|
|
|
$ip = $ARGV[$argnum];
|
|
|
|
|
if ($ip =~ s/:(\d)$//) {
|
|
|
|
|
$port = $1;
|
|
|
|
|
}
|
|
|
|
|
} elsif ($ARGV[$argnum] eq "-port") {
|
|
|
|
|
die "No argument after -port\n" unless $argnum+1<=$#ARGV;
|
|
|
|
|
$argnum = $argnum+1;
|
|
|
|
|
$port = $ARGV[$argnum];
|
|
|
|
|
} else {
|
|
|
|
|
$argumentstring .= "$ARGV[$argnum] ";
|
|
|
|
|
}
|
|
|
|
|
my $optret = GetOptions(
|
|
|
|
|
'help|h' => sub { showusage(); exit 0; },
|
|
|
|
|
'ip=s' => \$ip,
|
|
|
|
|
'port=i' => \$port,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if ($ip =~ s/:(\d+)$//) {
|
|
|
|
|
$port = $1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$argumentstring = "@ARGV";
|
|
|
|
|
$argumentstring = trim($argumentstring);
|
|
|
|
|
|
|
|
|
|
if (!$argumentstring || !$optret || $port <= 0 || $port > 65535) {
|
|
|
|
|
showusage();
|
|
|
|
|
exit 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# create a connecting socket
|
|
|
|
|
@ -48,7 +42,6 @@ $socket->autoflush(1);
|
|
|
|
|
setsockopt($socket, SOL_SOCKET, SO_SNDTIMEO, pack('L!L!', 3, 0) ) or die $!;
|
|
|
|
|
setsockopt($socket, SOL_SOCKET, SO_RCVTIMEO, pack('L!L!', 3, 0) ) or die $!;
|
|
|
|
|
|
|
|
|
|
$argumentstring = trim($argumentstring);
|
|
|
|
|
my $size = $socket->send("$argumentstring\n");
|
|
|
|
|
|
|
|
|
|
# receive a response of up to 10MB
|
|
|
|
|
|