Telnet (TELecommunication NETwork) es un protocolo que permite acceder a otro equipo de la red y adminstrarlo de forma remota, esto es, como si estuviéramos sentados delante de él.
El protocolo Telenet está basado en:
- El modelo cliente/servidor, por lo que su esquema básico de funcionamiento será el típico de esta arquitectura.
- El servidor escucha las peticiones por el puerto 23.
- Su funcionamiento es en modo texto.
Este servicio puede resultar muy útil para administrar por ejemplo equipos sin pantalla o teclado, o bien servidores apilados en un rack o que no estén físicamente presentes.
En la actualidad, no se suele utilizar, debido a la poca seguridad que ofrece, ya que toda la información que se intercambia entre servidor y cliente, incluidos usuario y contraseña, se transmiten en texto plano. Esto es así, porque Telnet se creó pensando en la facilidad de uso y no en la seguridad. En su lugar, se utiliza un servicio de acceso y control remoto basado en el protocolo SSH.
Veremos un ejemplo de programación de un cliente Telnet, sólo a modo ilustrativo de uso de otra biblioteca proporcionada por el API de Apache, org.apache.commons.net
, que ya te descargaste en los apartados anteriores.
La biblioteca necesaria es org.apache.commons.net.telnet
. Para disponer de ella, tendremos que agregar a las bibliotecas del proyecto, como en el ejemplo de FTP, el archivo commons-net-n.x.x.jar
. Entre las clases que proporciona para programar un cliente Telnet está:
- Clase
TelnetClient
. Permite implementar un terminal virtual para el protocolo Telnet. Hereda de la claseSocketClient
.- El método
SocketClient.connect()
realiza la conexión al servidor . - Los métodos
TelnetClient.getInputStream()
yTelnetClient.getOutputStream()
permiten a través de objetosInputStream()
yOutputStream()
enviar y recibir datos a través de la conexión Telnet. - El método
TelnetClient.disconnect()
cierra la conexión al servidor, así como los flujos de entrada y salida y elsocket
abiertos.
- El método
En el siguiente enlace puedes ver el código de programación de un cliente Telnet. (Puedes utilizar las bibliotecas de Apache para Telnet o bien las indicadas en el ejemplo).