• Publicidad

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

¿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.

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

Notapor dovier_antonio » 2005-11-10 00:43 @071

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
"...Si el universo fuese un programa estaría implementado en Perl, y correría sobre un Sistema Operativo GNU/Linux..."

$_="7a65646e654d206c6c6f706952206f696e6f746e4120726569766f44";
while (s/..$//) {
print chr(hex($&))
}
Avatar de Usuario
dovier_antonio
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2005-05-27 14:21 @639
Ubicación: Ciudad de la Habana, Cuba

Publicidad

Notapor Perl user » 2005-11-10 10:34 @482

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 :).
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Hola

Notapor dovier_antonio » 2005-11-15 21:04 @919

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
"...Si el universo fuese un programa estaría implementado en Perl, y correría sobre un Sistema Operativo GNU/Linux..."

$_="7a65646e654d206c6c6f706952206f696e6f746e4120726569766f44";
while (s/..$//) {
print chr(hex($&))
}
Avatar de Usuario
dovier_antonio
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2005-05-27 14:21 @639
Ubicación: Ciudad de la Habana, Cuba

Notapor explorer39 » 2005-11-16 07:54 @371

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
explorer39
 

Re: Hola

Notapor Perl user » 2005-11-16 15:27 @685

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,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

hola

Notapor dovier_antonio » 2005-11-17 17:07 @755

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
"...Si el universo fuese un programa estaría implementado en Perl, y correría sobre un Sistema Operativo GNU/Linux..."

$_="7a65646e654d206c6c6f706952206f696e6f746e4120726569766f44";
while (s/..$//) {
print chr(hex($&))
}
Avatar de Usuario
dovier_antonio
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2005-05-27 14:21 @639
Ubicación: Ciudad de la Habana, Cuba


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron