5. Uso de sockets em PERL


Tal como outros aspectos do PERL, o modo de uso de sockets assemelha-se bastante ao C. Esta página aborda a utilização de sockets Internet TCP em PERL.

Os passos para a comunicação com um servidor através de sockets Internet TCP são os habituais:

As operações sobre sockets são um bom exemplo de operações que podem falhar devido a circunstâncias não controláveis. Um exemplo do tratamento de erros em PERL através do uso da função die pode ser visto no troço de código abaixo. A função die termina o programa imprimindo a messagem que se lhe segue.

Segue-se o código de um exemplo com estes passos:

#!/usr/local/bin/perl5

require 5.002;

use strict;

use Socket;

my ($remote,$port, $iaddr, $paddr, $proto, $line);

$remote = 'camoes.rnl.ist.utl.pt';

$port = 1501; #random port

$iaddr = inet_aton($remote) || die "no host: $remote"; #end. do servidor

$paddr = sockaddr_in($port, $iaddr); # preenchimento do sockaddr

$proto = getprotobyname('tcp');

socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";

connect(SOCK, $paddr) || die "connect: $!";

$old_handle = select(SOCK);

$| = 1;

select($old_handle);

print SOCK "ola\n";

$line = <SOCK>;

print $line;

close (SOCK) || die "close: $!";

exit;


Comentários à página devem ser enviados para João Garcia, preferencialmente com o tema: manual_perl.