O básico do socket em perl

Started by Anonymous, 18 de June , 2006, 01:42:18 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Abaixo um exemplo beeem simplificado de uma simples conexao em perl:

print "\nSocket Basico em Perl - by Sthealt\n";
print "\nServidor: ";
$servidor=<STDIN>;
chomp $servidor;
print "\nPorta: ";
$porta=<STDIN>;
chomp $porta;
print "\n[1] Declarando socket...";
use IO::Socket;
my $socket = new IO::Socket::INET (PeerAddr=>$servidor, PeerPort=>$porta, Proto=>TCP,);
print "\n[2] Verificando conexao...";
if (!$socket) { print "\nErro no socket: $!"; exit(1); } else { print "\nConectado..."; }
print "\n[3] Enviando requisicao...";
$socket->send("Ola\n");
print "\n[4] Fechando socket...";
close $socket;

Na linha: my $socket = new IO::Socket::INET (PeerAddr=>$servidor, PeerPort=>$porta, Proto=>TCP,);
Dentro dos parenteses, voce pode adicionar o comando: Timeout=>tempo
Que é o tempo maximo em milisegundos para o host responder. Alem desses a outros varios, como listen, reuse. Mas não os domino direito então fica pra próxoma.

rodweb


Shady

Sthealt, sabe como faco pra nao fechar a conexao apos o primeiro send() do cliente, e aguardar por dados vindos do servidor?


Mundus Vult Decipi

slul

Quote from: "Shady"Sthealt, sabe como faco pra nao fechar a conexao apos o primeiro send() do cliente, e aguardar por dados vindos do servidor?

eu nao conheco perl mas acho que isso nao funciona não shady...

acho que você tem que ter uma conexao estabelecida com o servidor para receber os dados dele

abraços!

acho q soh dah pra fechar a conexaodepois do recebimento

Shady

Na verdade slul, quando se coda sockets em perl, o socket tem que ser "fechado" e outro tem que ser aberto... a conexao em si nunca morre.


Mundus Vult Decipi

OnlyOne

cria um loop para envio de msgs ao servidor e nao feche o socket , deve funcionar
No céu toca Joy Division


Anonymous

Quote from: "Shady"Sthealt, sabe como faco pra nao fechar a conexao apos o primeiro send() do cliente, e aguardar por dados vindos do servidor?
Não sei não... Pode me mostrar como?

Vlw