Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Sockets

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Mar May 16, 2006 7:36 am
sferreira01
Perlero Nuevo
Perlero Nuevo
Registrado: 16 May 2006
Mensajes: 4
Sockets Responder citando

Les hago una consulta. Desconozco bastante del lenguaje, es más no soy programador pero necesito ayuda con algo, espero sepan ayudarme y disculpen mi ignorancia en el tema.
Tengo un server "SERVER01" al cual debo enviarle un mensaje al port "5555" ... eso es todo... ¿Cómo debo hacerlo? Estuve leyendo un poco para hacerlo con Sockets, que creí fuera los más simple/conveniente pero lo que probé no funciona... y seguro le estoy errando.
Cita:
Server : "SERVER01"
port : "5555"
Mensaje: "IH7517a7501 b1."

El mensaje está en un TXT en mi c:\temp\MSJ.txt
(el server es siempre el mismo y el port también) Necesitará un script que tome del TXT ese mensaje y lo envíe a ese server en ese port.

Desde ya muchas gracias por la ayuda ....
¡¡Saludos!!
Mensaje Mar May 16, 2006 9:07 am
Perl user
Maestro Honorario
Maestro Honorario
Registrado: 03 Nov 2004
Mensajes: 385
Responder citando

Que tal,

Publica el código que intentaste para revisarlo y ayudarte en base a él.

Saludos,
Mensaje Mie May 17, 2006 12:36 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4140
Ubicación: Valladolid, España
Responder citando

Por ejemplo, para el cliente:
Código:
#!/usr/bin/perl
use IO::All;

my $io = io('SERVER01:5555');
io('C:\temp\MSJ.txt') > $io;

Para el servidor:
Código:
#!/usr/bin/perl
use IO::All;

my $socket = io(':5555')->fork->accept;
print $socket->slurp;
$socket->close;
Mensaje Mie May 17, 2006 12:58 pm
Perl user
Maestro Honorario
Maestro Honorario
Registrado: 03 Nov 2004
Mensajes: 385
Responder citando

explorer escribió:
Por ejemplo, para el cliente:
Código:
#!/usr/bin/perl
use IO::All;

my $io = io('SERVER01:5555');
io('C:\temp\MSJ.txt') > $io;

Para el servidor:
Código:
#!/usr/bin/perl
use IO::All;

my $socket = io(':5555')->fork->accept;
print $socket->slurp;
$socket->close;


El problema de IO::All es eficiencia, es un wrapper sobre wrappers. Es sencillo, pero a cambio de sencillez sacrificas rendimiento. Además que necesita MUCHOS módulos, y no todos son CORE.

En lo personal recomiendo sencillamente IO::Socket::INET, POE o Danga::Socket ( si requieres async i/o ).

Saludos,
Mensaje Jue May 18, 2006 7:31 am
sferreira01
Perlero Nuevo
Perlero Nuevo
Registrado: 16 May 2006
Mensajes: 4
Gracias por sus repuestas!! Responder citando

Probé el codigo de Explorer, pero me responde que me falta "IO/All.pm "¿¿tengo que instalar algo?? ¿¿de donde lo puedo bajar?? (estoy trabajando sobre WinXP)

Si uso IO::Socket::INET , hay que modificar algo el el código que pegó Explorer? ... tengo que bajar alguna versión de perl en particular?

Muchas... muchas gracias por toda la ayuda.
Saludos!!
Mensaje Jue May 18, 2006 7:58 am
Perl user
Maestro Honorario
Maestro Honorario
Registrado: 03 Nov 2004
Mensajes: 385
Responder citando

Sí, claro que involucra muchos cambios, yo recomiendo darle una leída a la parte de "Programación de aplicaciones de red con sockets", de cualquier libro que tengas a la mano, para que te des una idea de esto como funciona.

O en su defecto, ver ejemplos de como se utilizar IO::Socket::INET.

Saludos,
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group