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.
Parte 2: Exemplo de um cliente e servidor
Servidor:
Cliente:
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!
#! /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: $_ ";
}
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>;}
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!
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: $_ ";
}
}