SoloCodigo

Programación Web y Scripting => Perl => Mensaje iniciado por: skappermx en Sábado 11 de Octubre de 2008, 18:30

Título: Socket en Perl
Publicado por: skappermx en Sábado 11 de Octubre de 2008, 18:30
Hola a todos es contare de mi problema  :rolleyes:

Quiero hacer un socket en perl que se conecte a mi servidor hecho en C++ y que si el servidor le manda X cadena haga tal cosa :rolleyes:

Código: Text
  1.  # Server Program
  2. use IO::Socket::INET;
  3. print ">> Server Program <<n";
  4.  
  5. # Create a new socket
  6. $enchufe = new IO::Socket::INET->new(PeerPort=>3460,Proto=>'tcp',PeerAddr=>'localhost');
  7. my $buf;
  8. $enchufe->recv($buf,8);
  9.  
  10.  
  11. if ($buf ne 'chick' )
  12. {
  13.  
  14. print "Lo que me envio: $bufn";
  15. }
  16. else
  17. {
  18. print "Errorn";
  19. }
  20. $enchufe->close();
  21.  

 :hitcomp: El problema es que el servidor manda la palabra "chicken" pero si pongo en el if otra palabra distinta a alo que manda el servidor la ejecuta y no ejecuta el else

Por que pasa eso? :ouch:

Gracias

Saludos :good:
Título: Re: Socket en Perl
Publicado por: su - en Sábado 11 de Octubre de 2008, 18:54
Es que esta todo mal hecho...  :P
Código: Perl
  1. # Server Program
  2. use strict; #Este pragma es muy importante
  3. use IO::Socket::INET;
  4. print ">> Server Program <<n";
  5.  
  6. # Create a new socket
  7. my $enchufe = IO::Socket::INET->new(
  8.     PeerPort  => 3460,
  9.     Proto     => 'tcp',
  10.     PeerAddr  => 'localhost'
  11.     );
  12. my $buf;
  13. $enchufe->recv($buf,8); # Esto es poco usual
  14. # Generalmente se usa while
  15. if ($buf =~ /chick/ ) {
  16.     print "Lo que me envio: $bufn";
  17. }
  18. else {
  19.     print "Errorn";
  20. }
  21. $enchufe->close();
  22.  

Te recomiendo Perl Cookbook...
Título: Re: Socket en Perl
Publicado por: skappermx en Sábado 11 de Octubre de 2008, 19:01
Gracias lo que pasa es que casi no programo en perl , me dedico mas C++ pero voy a leerme a conciencia el Perl CookBook  :good:  :good: