perl | Programación de zócalos

La programación de sockets en Perl es una forma de conectar dos Nodes en una red para comunicarse entre sí. Básicamente, es una configuración unidireccional de Cliente y Servidor en la que un Cliente se conecta, envía mensajes al servidor y el servidor los muestra mediante una conexión de socket. Un socket (Node) escucha en un puerto particular en una IP, mientras que otro socket se comunica con el otro para formar una conexión. El servidor forma el socket de escucha mientras el cliente se comunica con el servidor. Antes de profundizar en el código del servidor y el cliente, se recomienda encarecidamente pasar por el modelo TCP/IP .

Cualquier sistema informático que esté en una red necesita un puerto local para transferir datos a través de Internet. Estos datos se dirigen al sistema designado con el uso de su dirección IP. Todos y cada uno de los sistemas reciben y envían estos datos a través de la red por los puertos designados para el proceso respectivo. Por ejemplo, el puerto 80 es el puerto predeterminado para recibir información enviada desde el servidor. Este puerto no necesita ser el mismo siempre, también puede ser decidido por el usuario.
Por lo tanto, un socket es una dirección IP y un puerto juntos, lo que permite que la conexión de red envíe/reciba información a otras redes o sistemas.

La programación de socket se puede entender mejor creando un servidor y un cliente en dos consolas diferentes ejecutando scripts de Perl y luego transfiriendo datos entre ambos a través de una conexión segura.


Above image illustrates the calls that are must for running server side and client side scripts in Socket programming.

Etapas para la programación del lado del servidor

Para crear un servidor en programación de socket, se realizan paso a paso las siguientes etapas:
 

-> Crear un socket usando la socket()función de llamada. Perl proporciona un módulo predefinido Socket.pmque debe incluirse en el código utilizando el pragma ‘ use ‘.

usar enchufe;

Este módulo ayudará a la creación de un socket en el extremo del servidor.

-> bind() la llamada se usa para vincular el socket con un número de puerto. Sin un puerto, el zócalo será inútil. El servidor usa esta bind()función para asignar un puerto a un socket.

bind(socket, puerto_dirección)

-> listen() la llamada es para permitir que el puerto espere cualquier solicitud entrante. Esta llamada la realiza el servidor para proporcionar un límite de las requests de conexión permitidas con el servidor.

escuchar (enchufe, tamaño)

Aquí, el tamaño se usa para pasar el límite de requests.

-> accept() llamada se utiliza para emitir una solicitud a la access()función para aceptar las conexiones entrantes.

aceptar(nuevo_zócalo, zócalo)

Si la access()llamada tiene éxito, se devuelve un nuevo socket para futuras conexiones con el cliente respectivo.

Etapas para la programación del lado del cliente

Para crear un cliente en la programación de sockets, se realizan paso a paso las siguientes etapas:
 

-> Crear un socket usando la socket()función de llamada. Perl proporciona un módulo predefinido Socket.pmque debe incluirse en el código utilizando el pragma ‘ use ‘.

usar enchufe;

Este módulo ayudará a la creación de un socket en el extremo del cliente.

-> connect() la llamada se usa para conectar el socket con el servidor usando una dirección específica.

conectar (enchufe, dirección)

Aquí, la dirección es similar a la bind()llamada, excepto que contiene la dirección IP del servidor remoto.

Ejemplo de programación de socket:

Script que se ejecutará para la creación del servidor:

#!/usr/bin/perl -w  
use IO::Socket;   
use strict;   
use warnings;   
  
my $socket = new IO::Socket::INET (   
LocalHost => 'localhost',   
LocalPort => '6666',   
Proto => 'tcp',   
Listen => 1,   
Reuse => 1,   
);   
  
die "Could not create socket: $!n" unless $socket;   
  
print "Waiting for data from the client end\n";   
my $new_socket = $socket->accept();   
while(<$new_socket>) 
{   
    print $_;   
}   
  
close($socket);  

Guarde el script anterior como server_side.pl
salida:

Script a ejecutar para la creación del Cliente:

use strict;   
use warnings;   
use IO::Socket;   
  
my $socket = new IO::Socket::INET (   
PeerAddr => 'localhost',   
PeerPort => '6666',   
Proto => 'tcp',   
);   
  
die "Could not create socket: $!n" unless $socket;
  
print "Enter data to send:\n";  
my $data = <STDIN>;  
chomp $data;  
print $socket "Data received from user: '$data'\n";  
  
close($socket);  

Guarde el script anterior como Client_side.pl
salida:

Proporcionar entrada para probar la programación de socket:

Extremo del cliente:

Fin del servidor:

Publicación traducida automáticamente

Artículo escrito por Abhinav96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *