Sockets extremadamente lentos

Es normal que se hagan tan lentas las conexiones con sockets?
Codee por ejemplo un escaner de puertos y tarda muchisimo en escanear,
excepto cuanod es a mi mismo, es normal? Hay alguna manera de acelerar
estos procesos? con HTTP Pasa lo mismo…

saludos

Tan lentos son que siempre me dan este error ahora:
Connection timed out - connect(2) (Errno::ETIMEDOUT)
y el socket ni trabaja…
no se que hacer

Que es lo que estas haciendo exactamente. Los timeouts pueden ser
culpa de la máquina a la estes conectando.

Un saludo,

Francesc


Not sent from my iPhone, but my iPod.

On May 11, 2008, at 23:47, Diego G. <ruby-forum-incoming@andreas-

Francesc E. wrote:

Que es lo que estas haciendo exactamente. Los timeouts pueden ser
culpa de la máquina a la estes conectando.

Un saludo,

Francesc

De momento simplemente hago pruebas para saber como funcionan, por
ejemplo un simple escaner. O para hacer pruebas si funcionan, dejo
netcat a la escucha en mi laptop, un determinado puerto, y intento
conectar un socket desde el PC de sobremesa a ese PC y me da timeout, no
llega a conectar…Pero estoy seguro que ese host existe ( la IP he
probado privada mirandola en ifconfig y la publica…) y que ese puerto
está abierto, ya que lo acabo de abrir por nc…Y si me conecto en vez
de con mi script en ruby con netcat si que conecta…

saludos

El día 11 de mayo de 2008 19:26, Diego G. <
[email protected]> escribió:

netcat a la escucha en mi laptop, un determinado puerto, y intento
conectar un socket desde el PC de sobremesa a ese PC y me da timeout, no
llega a conectar…Pero estoy seguro que ese host existe ( la IP he
probado privada mirandola en ifconfig y la publica…) y que ese puerto
está abierto, ya que lo acabo de abrir por nc…Y si me conecto en vez
de con mi script en ruby con netcat si que conecta…

saludos

Primero hacé

telnet nombre_de_máquina puerto

desde la consola del sistema operativo.

Si anda eso, seguís con Ruby. En realidad, deberías consultar la
documentación de Ruby … Programming Ruby: The Pragmatic Programmer's Guide
No sé como lo estás haciendo, pero la idea es abrir el socket con
TCPSocket
y luego hacer select del objeto que te devuelve …
Con el método “select”, podés establecer el “timeout” que te parezca, en
el
caso que eso te moleste.

Saludos,
Silvio

Primero hacé

telnet nombre_de_máquina puerto

desde la consola del sistema operativo.

Si anda eso, seguís con Ruby. En realidad, deberías consultar la
documentación de Ruby … Programming Ruby: The Pragmatic Programmer's Guide
No sé como lo estás haciendo, pero la idea es abrir el socket con
TCPSocket
y luego hacer select del objeto que te devuelve …
Con el método “select”, podés establecer el “timeout” que te parezca, en
el
caso que eso te moleste.

Saludos,
Silvio

Mira, yo creo el socket: sock=TCPSocket.new(host, puerto)
Pero ahi ya es cuando tarda demasiado, no lo consigue conectar. Lo del
select, no se que quieres decir.

saludos

Muchas gracias por lo del select, no lo conocía y me ha ido genial ;).
Otro problema que me surge es, como dejar un servicio asociado a un
socket? Es decir, conectar un socket y que quede un servicio asociado a
esa conexion.

saludos!

El día 12 de mayo de 2008 18:10, Diego G. <
[email protected]> escribió:

y luego hacer select del objeto que te devuelve …
Pero ahi ya es cuando tarda demasiado, no lo consigue conectar. Lo del
select, no se que quieres decir.

hacé primero

telnet host puerto

desde la línea de comandos del sistema operativo. Si también tarda, es
problema de conectividad y no de Ruby. De esta forma descartás algún
otro
tipo de inconveniente.

Con respecto al “select”, es que podés hacer …

sock=TCPSocket.new(host, puerto)
select [sock], nil, nil, timeout

para establecer tu propio timeout. Mirá este link que está bien
documentado
el método.
http://www.ruby-doc.org/docs/ProgrammingRuby/html/ref_m_kernel.html#Kernel.select

Fijate que en la web vas a encontrar varios ejemplos en C para esta
función.

Saludos!
Silvio

P.D.: Encontré algo en Perl, como lo puedo pasar a Ruby?

SOCKET->autoflush();
open(STDIN, “>&SOCKET”);
open(STDOUT,">&SOCKET");
open(STDERR,">&SOCKET");

Vale, completamente de acuerdo, perdon.
Donde puedo encontrar entonces apoyo para Ruby? ( Y perdon por ‘revivir’
el post)

2008/5/13 Diego G. [email protected]:

Muchas gracias por lo del select, no lo conocía y me ha ido genial ;).
Otro problema que me surge es, como dejar un servicio asociado a un
socket? Es decir, conectar un socket y que quede un servicio asociado a
esa conexion.

Hola,

como dije ayer en otro hilo, la idea de la lista es centrarse en
desarrollo con Rails y dejar las preguntas de programación en Ruby. He
dejado este hilo pasar porque se me escapó al principio y he preferido
esperar a ver si moría por si mismo pronto. Ya que parece que ha sido
así, no lo resucitemos. Gracias.


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.

El día 13 de mayo de 2008 11:43, Diego G. <
[email protected]> escribió:

Vale, completamente de acuerdo, perdon.
Donde puedo encontrar entonces apoyo para Ruby? ( Y perdon por ‘revivir’
el post)

Esta lista está muy poco movida, pero suelo revisarla.

https://listas.escomposlinux.org/mailman/listinfo/rubies

Silvio

http://www.ruby-lang.org/es/community/mailing-lists/manual-instructions/

2008/5/13 Diego G. [email protected]: