Telnet en perl

Salvador Ortiz Garcia sog@msg.com.mx
Sun, 15 Feb 1998 16:38:46 -0600 (CST)


On Sat, 14 Feb 1998, Alberto wrote:

> 
> >Telnet es un protocolo muy complejo, mucho antes de que puedas ver
> 
> Si, eso lo sabía, pero no entiendo porque cuando se le aplica el código
> al puerto 19 por ejemplo, funciona, y cuando es al del telnet no :?

Precisamente, por que el protocolo del puerto 19 es chargen (un protoco
simple) y no telnet. 

> Supongop que todos negociarán, no?

Efectivamente, pero a niveles distintos, mientras el de telnet es de
bajo nivel, smtp y http, por ejemplo, son de alto nivel, es decir:

SMTP (el del correo) es un protocolo orientado a lineas, y el servidor del
protocolo, tan pronto acepta la conexión envía una linea identificandose,
el cliente a su vez le envía una línea 'HELO' con su identificación, y a
partir de ahí se la pasan enviandose lineas (todas terminadas con 'CRNL').
 
HTTP (el del web) tambien es orientado a lineas, con la diferencia de que
quien inicia la conversación es el cliente.

Por lo anterior, en ambos, funcionan el '$linea = <SOCKFILE>' y 
'print SOCKFILE ...' de perl; pero telnet, en cambio, está orientado a
caracteres sueltos y la comunicación es asíncrona, por lo que requieres
usar syswrite, sysread y select, todo dentro de un loop.

> > O para una introducción buscate el "Internetworking with TCP/IP".

> Si, pero en ese libro (que me han hablado mucho de el) habla de como 
> implementarlo en Perl? .... el caso es que no puedo encontrar demasiada
> informacion acerca de los Sockets en Perl

Sockets es un API estandar para la comunicación (entre otros) via TCP/IP,
como tal no está ligado a ningun lenguaje en particular, ni el libro ni
los RFC, te muestran explicitamente la implementación en perl.

Pero si entiendes los conceptos, la implementación es igual de facil en
perl que en C, por ejemplo.

Saludos.

Salvador Ortiz.