Jag är helt ny på perl men har lyckats knåpa ett litet script som utbyter lite data med en server...
Det som händer är att om jag försöker ansluta till en server som inte svarar eller finns så blir det scriptfel men finns servern och allt rullar på så fungerar scriptet.. Det jag behöver hjälp med är hur jag skriver ut meddelanden ifall det blir något fel när den skickar, tar emot eller blir timeout..
[kod]
#!/usr/local/bin/perl
#Hämtar parametrar
$ip = @ARGV[0];
$port = @ARGV[1];
$rconpass = @ARGV[2];
$i = 0;
$cmd = "";
for (@ARGV)
{
$i = $i +1;
if ($i >= 4)
{
$cmd = "$cmd$_ ";
}
}
#initierar Udp socketen och sätter vissa viktiga variabler
use IO::Socket;
$bytecode = "˙˙˙˙";
$bufsize = 1024;
$sock = new IO::Socket::INET(PeerAddr => "$ip",
PeerPort => "$port",
Proto => "udp");
#Skickar Rcon
$rconcommand = $cmd;
print $sock->send("˙˙˙˙challenge rcon");
print "\n";
print $sock->recv($buf, $bufsize);
print "\n";
@list = split(" ", $buf);
$rconnumber = $list[2];
$sock->send("˙˙˙˙rcon $rconnumber \"test\" $rconcommand");
$sock->recv($buf, $bufsize);
print "\n\n\n$buf";
[/kod]
*Hade tappat några tecken Proto => "udp"
Det som händer är att om jag försöker ansluta till en server som inte svarar eller finns så blir det scriptfel men finns servern och allt rullar på så fungerar scriptet.. Det jag behöver hjälp med är hur jag skriver ut meddelanden ifall det blir något fel när den skickar, tar emot eller blir timeout..
[kod]
#!/usr/local/bin/perl
#Hämtar parametrar
$ip = @ARGV[0];
$port = @ARGV[1];
$rconpass = @ARGV[2];
$i = 0;
$cmd = "";
for (@ARGV)
{
$i = $i +1;
if ($i >= 4)
{
$cmd = "$cmd$_ ";
}
}
#initierar Udp socketen och sätter vissa viktiga variabler
use IO::Socket;
$bytecode = "˙˙˙˙";
$bufsize = 1024;
$sock = new IO::Socket::INET(PeerAddr => "$ip",
PeerPort => "$port",
Proto => "udp");
#Skickar Rcon
$rconcommand = $cmd;
print $sock->send("˙˙˙˙challenge rcon");
print "\n";
print $sock->recv($buf, $bufsize);
print "\n";
@list = split(" ", $buf);
$rconnumber = $list[2];
$sock->send("˙˙˙˙rcon $rconnumber \"test\" $rconcommand");
$sock->recv($buf, $bufsize);
print "\n\n\n$buf";
[/kod]
*Hade tappat några tecken Proto => "udp"
Kommentera