Manipulação de sockets em Perl usando o IO::Socket::INET

Resolvi escrever esse artigo sobre manipulação de sockets em Perl usando o IO::Socket::INET para ajudar os novatos, já que a maioria dos artigos existentes são em inglês, dificultando a leitura de muitos.

[ Hits: 18.919 ]

Por: Guinter Giuliano em 15/07/2008


Exemplo de um cliente e servidor



Servidor:

#! /usr/bin/perl

use IO::Socket::INET;
use strict;

my $server_socket = IO::Socket::INET->new(
'LocalPort' => '2008',
'Proto' => 'tcp',
'Reuse' => 1,
'Listen' => SOMAXCONN
) or die "Não foi possível criar o socket. ($!)\n";

print "Servidor iniciado.\n";

while (my $cliente = $server_socket->accept){
while (<$cliente>) {
print "Mensagem recebida: $_";
print $cliente "Mensagem enviada: $_ ";
}

Cliente:

#! /usr/bin/perl

use IO::Socket::INET;
use strict;

my $cliente_socket = IO::Socket::INET->new(
'PeerAddr' => 'localhost',
'PeerPort' => '2008',
'Proto' => 'tcp'
) or die "Não foi possível criar o socket. ($!)\n";

print "Digite sua mensagem e aperte enter.\n";

while (<STDIN>)
{print $cliente_socket $_;
print scalar <$cliente_socket>;}

Espero que vocês tenham gostado desse artigo, que apesar de estar bem simples, dá para tirar algumas dúvidas dos iniciantes de como usar o IO::Socket::INET.

Até a próxima!

Página anterior    

Páginas do artigo
   1. Criação do IO::Socket::INET
   2. Exemplo de um cliente e servidor
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Enviando notificações do Nagios para o MSN

Instalação de MRTG em ambiente Windows

Gerenciando redes com Perl e SNMP

Impressão remota via WEB

Programando uma Intranet com Apache, MySQL e Perl (parte 2)

  
Comentários
[1] Comentário enviado por roberva em 16/07/2008 - 10:52h

Ótimo artigo, parabéns e aguardo o próximo.

Correção para o amigo:

no final do script de servidor faltou o fechamento do statement: "{"
Segue o corrigido.


Servidor:

#! /usr/bin/perl

use IO::Socket::INET;
use strict;

my $server_socket = IO::Socket::INET->new(
'LocalPort' => '2008',
'Proto' => 'tcp',
'Reuse' => 1,
'Listen' => SOMAXCONN
) or die "Não foi possível criar o socket. ($!)\n";

print "Servidor iniciado.\n";

while (my $cliente = $server_socket->accept){
while (<$cliente>) {
print "Mensagem recebida: $_";
print $cliente "Mensagem enviada: $_ ";
}
}

[2] Comentário enviado por unixtm em 17/07/2008 - 12:55h

Gostei, ótimo artigo.. Perl é ótimo para trabalhos que usem sockets =)

[3] Comentário enviado por chartrand em 26/10/2009 - 12:57h

amigo, gostaria de saber se existe uma forma de eu conectar um socket no perl usando um proxy. Tipo, a porta que quero conectar é bloqueada aqui, então eu queria usar um proxy transparente(?) pra fazer essa conexão. Entende?

[4] Comentário enviado por removido em 11/07/2011 - 14:03h

chartrand, gostaria de saber se consegiu a resposta para essa pergunta !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts