• Publicidad

Comentar código

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Comentar código

Notapor fabdicar » 2010-03-21 18:14 @801

¿Qué tal? Pues mi problema es que mi profesor nos dejó explicar cada línea en forma de comentario, de 2 códigos en Perl y pues no sé nada acerca de programación en Perl y quisiera que me ayudaran en esto... por favor.... No sé si ésta sea la categoría idónea para hacer esta pregunta...

Por lo que nos mencionó, los códigos hacen la función de socket en cliente y servidor...

--cliente
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w     
  2. # client.pl            
  3. #----------------
  4.  
  5. use strict;
  6. use Socket;
  7.  
  8. # initialize host and port
  9. my $host = shift or `hostname`; # esto no sirve de nada!
  10. my $port = shift or 7890;
  11. my $server = "192.168.10.58";
  12.  
  13. # create the socket, connect to the port
  14. socket( SOCKET, AF_INET, SOCK_STREAM, getprotobyname('tcp') )
  15.    or die "Can't create a socket $!\n";
  16. my $sin = sockaddr_in( $port, inet_aton( $server ) );
  17.  
  18. if ( connect ( SOCKET, $sin ) ) {
  19.     while ( my $line = <SOCKET> ) {
  20.         print "$line\n";
  21.     }
  22. }
  23. else { die "Can't connect to $server : $!\n"; }
  24. shutdown( SOCKET, 2 ) or die "close: $!";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4



--servidor
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Socket;
  4.  
  5. # use port 7890 as default
  6. my $port = shift or 7890;
  7. my $proto = getprotobyname('tcp');
  8.  
  9. # create a socket, make it reusable
  10. socket(SOCKET, PF_INET, SOCK_STREAM, $proto)
  11.    or die "Can't open socket $!\n";
  12. setsockopt(SOCKET, SOL_SOCKET, SO_REUSEADDR, 1)
  13.    or die "Can't set socket option to SO_REUSEADDR $!\n";
  14.  
  15. my $paddr = sockaddr_in($port, INADDR_ANY);
  16.  
  17. # bind to a port, then listen
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
fabdicar
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2010-03-21 18:06 @795

Publicidad

Re: Comentar código

Notapor explorer » 2010-03-21 18:31 @813

Bienvenido a los foros de Perl en Español, fabdicar.

¿Cómo es posible que el profesor os mande comentar dos códigos de Perl si no sabéis Perl? ¿Es que se trata de un trabajo de investigación de cómo se programa en cada lenguaje? Porque si es eso, yo no hubiera escogido esos dos códigos, que me parecen muy aburridos.

En cambio, si sabes cómo funcionan los sockets TCP en los ordenadores actuales, es muy fácil de entender el código, ya que solo están haciendo las funciones iniciales de creación de un cliente y de un servidor.

En perldoc.perl.org tienes la documentación de todas las funciones. En una página de LinuxJournal tienes explicado más en detalle el trabajo con la librería Socket y las distintas formas que existen (existían) de crear código cliente/servidor.

En unas horas lo tienes resuelto.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Comentar código

Notapor panterozo » 2010-03-22 16:27 @727

Bastante raro el ejercicio :s... Hay información sobre socket en muchas partes... Te recomiendo que busques en Google IO::Socket (que es un módulo de Perl) o documentos sobre cómo funcionan los sockets, ya que está bastante claro tu ejemplo...
Saludos
panterozo
Perlero nuevo
Perlero nuevo
 
Mensajes: 160
Registrado: 2010-01-26 08:36 @400

Re: Comentar código

Notapor fabdicar » 2010-03-22 21:46 @948

Gracias por su ayuda, ya solucioné mi problema y era muy sencillo... ¡ja,ja,ja!

De hecho, me está empezando a gustar Perl... ¡ja,ja,ja!

De nuevo, gracias.
fabdicar
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2010-03-21 18:06 @795


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 45 invitados