---
title: "felhantering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/perl-ruby/78701-felhantering"
topic: "Perl & Ruby"
topic_url: "https://www.webforum.nu/amne/perl-ruby"
author: "henrikjohansson"
published: "2003-06-02T13:14:07.000Z"
updated: "2003-06-04T05:20:44.000Z"
replies: 3
views: 297
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/perl-ruby/78701-felhantering"
---

# felhantering

## #1 — henrikjohansson, 2003-06-02T13:14Z

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"

Permalänk: https://www.webforum.nu/p/78701

## #2 — Jojoxx, 2003-06-03T19:36Z

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](http://www.perldoc.com/perl5.8.0/lib/IO/Socket/INET.html#CONSTRUCTOR)

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

```
if($sock->send("...whatever...")){
# Detta gick bra...
}
```

Permalänk: https://www.webforum.nu/p/1073325

## #3 — Peter_B, 2003-06-03T20:29Z

Ä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?

Permalänk: https://www.webforum.nu/p/1073371

## #4 — henrikjohansson, 2003-06-04T05:20Z

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

Permalänk: https://www.webforum.nu/p/1073511

---

Tråden på webben: https://www.webforum.nu/amne/perl-ruby/78701-felhantering
