webForumDet fria alternativet

felhantering

Perl & Ruby

3 svar · 288 visningar · startad av henrikjohansson

Medlem sedan maj 2000360 inlägg
Frågan#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"

Medlem 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...
}
Medlem 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?

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

391 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
128 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)