webForumDet fria alternativet

felhantering

3 svar · 288 visningar · startad av henrikjohansson

henrikjohanssonMedlem sedan maj 2000360 inlägg
#1

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..

   #!/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";

*Hade tappat några tecken Proto => "udp"

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Funkar det där verkligen alls? :)

    $sock = new IO::Socket::INET(PeerAddr => "$ip",
                                 PeerPort => "$port",
                                 Proto    => "udp",

^---- Denna programsats är inte avslutad. Det saknas ); IO::Socket::INET

Sedan brukar metoderna returnera något beroende på hur det gick. Prova;

if($sock->send("...whatever...")){
# Detta gick bra...
}
Peter_BMedlem sedan apr. 2000642 inlägg
#3

Är det inte det som är själva grejen med udp, man vet inte om paketet kommit fram eller ej.

Står det nått i serverloggen varför den misslyckas?

henrikjohanssonMedlem sedan maj 2000360 inlägg
#4

ok skall testa det med if grejen och se ifall det händer något..
Finns det nån bra nybörjar-dokumentation som man kan tanka hem?

jo jag hade tappat några tecken där men det är bara här på forumet.. i scriptet var det rätt

hörde nånstanns att man kan använda eval och sedan kolla med en ifsats... har nu lyckats få så att man får felmeddelanden om det blir fel när man skickar, tar emot eller får felaktig information.

Har inte tillgång till koden just nu dock...

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)