• Publicidad

Sockets en Perl: No puede conectar

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Notapor explorer » 2007-09-18 16:23 @724

En los foros de Arch-Linux hay una persona que le pasa lo mismo que a ti:
http://bbs.archlinux.org/viewtopic.php?id=36977

Vete luego al enlace que pone en la parte de bugs, pero no creo que sea eso, porque entonces no hubiese fallado la prueba del ping.
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

Publicidad

Notapor creating021 » 2007-09-18 16:32 @730

Haz otro intento:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -MSocket -le 'foreach ("localhost", "yahoo.com") { inet_aton($_) or die "$_ : $!";}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Así puedes saber sí resuelve o no (al parecer no por lo de ping)

Cuando hagas un servidor trata de usar bind (No recuerdo si IO::Socket lo necesita).
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 alqui » 2007-09-18 19:05 @836

explorer escribiste:En los foros de Arch-Linux hay una persona que le pasa lo mismo que a ti:
http://bbs.archlinux.org/viewtopic.php?id=36977

Vete luego al enlace que pone en la parte de bugs, pero no creo que sea eso, porque entonces no hubiese fallado la prueba del ping.


No lo entiendo muy bien. Parece que dice que al actualizar con pacman le empezaron a fallar cosas , entre ellas módulos de Perl y que luego no pudo instalar esos modulos (como me pasa a mi). Pero no entiendo muy bien como lo solucionó: a caso dice que deshizo la actualización? Es que el inglés no lo llevo del todo bien.

Lo del bug de crear un enlace simbólico, lo he hecho pero parece que no me ha arreglado nada.

creating021 escribiste:Haz otro intento:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -MSocket -le 'foreach ("localhost", "yahoo.com") { inet_aton($_) or die "$_ : $!";}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Así puedes saber sí resuelve o no (al parecer no por lo de ping)

Cuando hagas un servidor trata de usar bind (No recuerdo si IO::Socket lo necesita).


Tu comando no me ha dado salida, con lo cual se supone que funciona. Para estar seguro del todo, he hecho:

[jordi@baby0 ~]$ perl -MSocket -le 'foreach ("localhost", "yahoo.com") { print inet_ntoa (inet_aton($_)) or die "$_ : $!";}'
127.0.0.1
66.94.234.13
[jordi@baby0 ~]$


O sea que funciona. Eso parece que contradice lo que suponíamos de que perl no entendía "localhost", no?
alqui
Perlero nuevo
Perlero nuevo
 
Mensajes: 27
Registrado: 2007-09-17 13:12 @591

Notapor creating021 » 2007-09-18 19:27 @852

Lo que eso quiere decir es que Socket.pm sí sabe que es localhost pero no se puede conectar o crear el mismo socekt.

Ahora intenta algo como esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/env perl
use strict;
use warnings "all";
use Socket;

my $proto = getprotobyname('tcp') or die "getproto tcp: $1\n";
socket(Socket, AF_INET, SOCK_STREAM, $proto);
my $sin = sockaddr_in(80, inet_aton("yahoo.com"));
if(connect(Socket, $sin)){
  print "Perl it's like Wow!\n";
}
else {
  print "Arrrgggh! hay algun problema\n";
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Update: Me faltaron los prints en el código :oops:
Última edición por creating021 el 2007-09-19 18:27 @810, editado 1 vez en total
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 alqui » 2007-09-19 06:10 @299

Tu script me devuelve esto:

Código: Seleccionar todo
[jordi@baby0 ~]$ ./socketpr4
Useless use of a constant in void context at ./socketpr4 line 10.
Useless use of a constant in void context at ./socketpr4 line 13.
getproto tcp: No existe el fichero o el directorio
[jordi@baby0 ~]$ 


Jeje... creo que me huelo lo que pasa: No tengo el /etc/protocols y Perl lo busca allí, ¿es eso?

Por cierto que tampoco tengo el /etc/services y eso también le pasa al tío que ha reportado su problema del enlace de explorer.
alqui
Perlero nuevo
Perlero nuevo
 
Mensajes: 27
Registrado: 2007-09-17 13:12 @591

Notapor alqui » 2007-09-19 06:23 @307

Pues sí que era eso. He buscado un /etc/protocols, lo he copiado en mi /etc y mi programa ya funciona.

¡¡¡Muchas gracias explorer, monoswim y creating021 por vuestra ayuda!!!!

P.D.: ¡¡¡Ahora también me ha funcionado el "cpan -i IO::Socket"!!!
alqui
Perlero nuevo
Perlero nuevo
 
Mensajes: 27
Registrado: 2007-09-17 13:12 @591

Notapor alqui » 2007-09-19 10:37 @484

De todos modos, aún no me funciona todo correctamente. Pues por ejemplo el

Código: Seleccionar todo
perl -e 'print `ping localhost`'


todavía no me funciona.
alqui
Perlero nuevo
Perlero nuevo
 
Mensajes: 27
Registrado: 2007-09-17 13:12 @591

Notapor creating021 » 2007-09-19 14:24 @642

alqui escribiste:De todos modos, aún no me funciona todo correctamente. Pues por ejemplo el

Código: Seleccionar todo
perl -e 'print `ping localhost`'


todavía no me funciona.

Eso es porque ping tiene una salida casi interminable... intenta esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -e 'system("ping", "localhost");'
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Cuando usas `` estás esperando a que el programa ejecutado termine.
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 alqui » 2007-09-19 16:19 @722

A... entiendo.

Eso último si funcionó.

Muchas gracias de nuevo creating021
alqui
Perlero nuevo
Perlero nuevo
 
Mensajes: 27
Registrado: 2007-09-17 13:12 @591

Notapor creating021 » 2007-09-19 18:29 @811

Al mejor estilo de Alf: ¡No hay problema!
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

AnteriorSiguiente

Volver a Intermedio

¿Quién está conectado?

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