• Publicidad

Socket Perl

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Socket Perl

Notapor escanda » 2008-07-30 07:45 @364

hola, ¿qué tal?

Yo ya he hecho un socket, mas o menos anduvo, pero ahora lo que tengo que hacer no es solo enviar un mensaje a otro lado sino que el que lo recibió lo responda, ¿es posible esto? ¿qué tengo que usar?

Gracias.

Saludos.
escanda
Perlero nuevo
Perlero nuevo
 
Mensajes: 28
Registrado: 2008-07-11 10:15 @469

Publicidad

Notapor monoswim » 2008-07-31 07:22 @348

Cuando haces la conexión entre el cliente y el servidor puede haber comunicación entre ellos...

Yo buscando hace tiempo por google encontré varios ejemplos...

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor escanda » 2008-07-31 07:45 @364

Gracias por la respuesta, pero ayer me pasé todo el día buscando por Google y no logré encontrar lo que buscaba, vuelvo a explicar, más o menos lo que básicamente quiero hacer es un chat entre 2 clientes y creo que esto se hace por medio de un servidor, si podrías ser más preciso te lo agradecería. Saludos.
escanda
Perlero nuevo
Perlero nuevo
 
Mensajes: 28
Registrado: 2008-07-11 10:15 @469

Notapor explorer » 2008-07-31 07:55 @371

Hay algunos ejemplos en estos foros. Busca por la palabra Socket.

También está bien que veas la página de Linux Journal sobre este tema:
Network Programming with Perl
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

Notapor escanda » 2008-07-31 10:00 @458

Encontré esto, pero no me funciona, se me cierra automáticamente todo después de mandar el mensaje.

SERVIDOR:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use IO::Socket;
 $sock = new IO::Socket::INET (LocalHost => 'localhost',
                               LocalPort => 1100,
                               Proto     => 'tcp',
                               Listen    =>  6,
                               Reuse     => 1
                               )    ;
   die "No se ha podido crear el socket: $!\n" unless $sock;
   $conexion= $sock -> accept(); #Ahora aceptamos las conexiones
   $conexion->send("Mensaje: "); #Otro mensaje que enviaremos
  # usando send
   recv($conexion, $nombre, 10,undef); #recibimos el nombre, y lo metemos
                                                        #en $nombre
                                                       #no esperamos mas de
                                                      #10 caracteres
   print $conexion "Hola $nombre\n"; #enviamos con print
   close ($conexion); #bye bye
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

CLIENTE
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
   use IO::Socket;
   $sock = new IO::Socket::INET (PeerAddr => 'localhost',
                                 PeerPort => 1100,
                                 Proto    => 'tcp');

recv($sock, $pregunta, 30,undef);
print "$pregunta";
$respuesta=<STDIN>;
print $sock "$respuesta";
recv($sock, $saludo, 30,undef);
print "$saludo\n";
close $sock;
exit;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

LES AGRADEZCO SI ME AYUDAN, GRACIAS.
escanda
Perlero nuevo
Perlero nuevo
 
Mensajes: 28
Registrado: 2008-07-11 10:15 @469

Notapor creating021 » 2008-07-31 16:39 @735

viewtopic.php?t=2839

Necesitas crear un bucle para hacer eso...

Nuevamente, te recomendo Perl Cookbook :wink: es muy útil.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2008-07-31 17:43 @780

Si hubieras visto el enlace que te puse, verías que los listados 5 y 6 son un servidor y un cliente que se intercambian mensajes.

P.D. Recuerda que estás en el foro Experto.
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

Notapor escanda » 2008-08-01 08:18 @387

explorer: en principio, gracias y disculpa las molestias, pero he copiado y pegado exactamente lo que había en el enlace, y lo que logro de esa forma es que el servidor le envíe un mensaje al cliente, en este caso el mensaje "PROBANDO", pero no logro hacer lo contrario, disculpa que insista tanto pero para mi sería muy importante que ande, desde ya muchas gracias, y disculpa las molestias.
escanda
Perlero nuevo
Perlero nuevo
 
Mensajes: 28
Registrado: 2008-07-11 10:15 @469

Notapor explorer » 2008-08-01 12:09 @548

El servidor debe enviar la cadena por el manipulador de ficheros que accept() le ha devuelto, mientras que al cliente le vale con pintar en el manipulador devuelto por IO::Socket.

En este hilo hay más ejemplos de cliente y servidor: IO::Socket emisor y receptor de un mensaje.

Si quieres que se intercambien varios mensajes, debes meter el proceso en un bucle mientras (while()) no se cumpla la condición de salida.

Pruébalo, y si el código sigue sin funcionar, publícalo y te seguimos ayudando.
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


Volver a Avanzado

¿Quién está conectado?

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

cron