Meddelande

Minska
No announcement yet.

felhantering

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • felhantering

    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"
    Last edited by henrikjohansson; 2003-06-04, 07:18.

  • #2
    Funkar det där verkligen alls?

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

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

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

    [kod]
    if($sock->send("...whatever...")){
    # Detta gick bra...
    }
    [/kod]
    / Jojoxx

    "Always remember that you're unique and special, just like everyone else..."

    Kommentera


    • #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?
      Med dagens datorer kan du göra fler fel per sekund än någonsin tidigare!

      Sendmail är rooten till root!

      Kommentera


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

        Kommentera

        Working...
        X