Página 1 de 1

Net::Telnet Vs. IO::Socket ¿Cual es más eficiente?

NotaPublicado: 2005-11-10 00:43 @071
por dovier_antonio
Hola a todos,

Necesito que me expongan argunmentos sobre que cual de estos dos módulos es más eficiente para establecer conexiones con SOCKETS...

Gracias,
Saludos,
Dovier

NotaPublicado: 2005-11-10 10:34 @482
por Perl user
En realidad estas queriendo comparar 2 cosas completamente diferentes en cuanto a finalidad de uso.

La primera es un modulo que sirve para hacer conexiones remotas a equipos utilizando el protocolo Telnet mediante Perl claro. La segunda es un modulo orientado a objetos que permite manipular el uso de Sockets de la familia AF_INET ( y lo hay para AF_INET6 ), y con este podras implementar tu propio modelo de comunicacion al protocolo que requieras ( o un protocolo propio ).

Net::Telnet hace uso opcional de IO::Socket.

Asi que dependiendo de tus necesidades seria el modulo que vas a elegir.

Saludos,

PD. Les debo los acentos, escribi el mensaje en una Sun Ray 100 con teclado en ingles, era el unico recurso disponible :).

Hola

NotaPublicado: 2005-11-15 21:04 @919
por dovier_antonio
Ante todo muchas gracias por su respuesta...

El hecho que Net::Telnet haga conexiones remotas con otra máquina (mantener diálogos) ¿no lo hace más lento que si establecieramos las comuinicaciones con IO::Socket?

Saludos,
Dovier

NotaPublicado: 2005-11-16 07:54 @371
por explorer39
Se supone que con IO::Socket también vas a mantener diálogos con otra máquina (salvo que te vayas a conectar a un socket de la misma máquina).
Yo creo que al final depende de lo quieras hacer.
En situaciones normales... yo siempre intento programar usando estos módulos en el siguiente orden:
IO::All
Poe::Component::Client::Telnet y
Poe::Component::Server::Telnet
IO::Socket

Re: Hola

NotaPublicado: 2005-11-16 15:27 @685
por Perl user
dovier_antonio escribiste:Ante todo muchas gracias por su respuesta...

El hecho que Net::Telnet haga conexiones remotas con otra máquina (mantener diálogos) ¿no lo hace más lento que si establecieramos las comuinicaciones con IO::Socket?

Saludos,
Dovier


En realidad no es que sea mas lento o mas rápido, es lo mismo, a fin de cuentas si tu quieres implementar una conexión remota por medio del protocolo Telnet tendrás que implementar la comunicación establecida por el RFC854, que a fin de cuentas es lo que implementa Net::Telnet. Sin embargo, el manejo de sockets en Perl no solo está adjudicado a IO::Socket, obviamente a mas "bajo" nivel se encuentra el módulo Socket, el cual hace uso directo de la interfaz en XS sobre los BSD sockets en C, y con este está implementado IO::Socket.

IO::Socket citando a Lincoln Stein, puede ser en ocasiones mas lento que Socket directamente, ya que una implementación orientada a Objetos siempre genera mas "overhead" que una implementación estructurada. Todo lo anterior depende de que tipo de aplicación se vaya a trabajar. Es como la comparación entre aplicaciones Multifork vs. Multithread vs. Multiplexed. ( este es otro tema aparte, es solo una comparación ).

explorer39 escribiste:Se supone que con IO::Socket también vas a mantener diálogos con otra máquina (salvo que te vayas a conectar a un socket de la misma máquina).
Yo creo que al final depende de lo quieras hacer.
En situaciones normales... yo siempre intento programar usando estos módulos en el siguiente orden:
IO::All
Poe::Component::Client::Telnet y
Poe::Component::Server::Telnet
IO::Socket


No solo IO::Socket mantiene un diálogo, cualquier implementación de TCP/IP lo hace por ser un protocolo orientado a conexión.

Las recomendaciones que haces son buenas, aunque IO::All necesita de MUCHOS módulos para funcionar ya que es una abstracción de muy alto nivel sobre cualquier funcionalidad de IO que se pueda trabajar en Perl. En el caso de POE es una excelente solución si lo que quieres es un servidor multitareas y que sea 100% cooperativo.

Y la última pues, ya expuse el caso sobre IO::Socket.

Saludos,

hola

NotaPublicado: 2005-11-17 17:07 @755
por dovier_antonio
Perl user:

Muchas gracias por su respuesta, sencillamente, me parece genial. Sus argumentos me han servido de mucho para la materialización del proyecto que actualmente desarrollo.

Saludos
Dovier Antonio Ripoll Méndez
Estudiante de 3er año de la Universidad de las Ciencias Informáticas
Cuba