Java es un lenguaje de programación muy extendido entre los programadores que usan Internet. Posee además una amplísima biblioteca de objetos que permiten diseñar aplicaciones gráficas y de tratamiento de audio. Finalmente, es conveniente saber que Java es un lenguaje interpretado lo que implica que es necesario disponer del intérprete para ejecutar un programa escrito en Java.
En el contexto concreto de Java, dicho intérprete se conoce como la máquina virtual de Java. Existe una máquina virtual casi para cualquier plataforma existente, lo que explica en cierta medida el éxito de este lenguaje de programación. En casi todos los sistemas operativos, dicha máquina virtual reside en estos dos paquetes: (1) en el JRE (Java Run-time Environment) y (2) en el JDK (Java Development Kit), que además contiene el compilador de Java. En esta práctica vamos a usar el JDK porque necesitaremos usar el compilador.
Por tanto, la primera etapa pasa por instalar el JDK (si es que ya no está instalado) en el host local. A continuación, almacenaremos en el servidor un applet (compilado) escrito en Java que presenta el contenido del fichero remoto. Finalmente, desde el host local accederemos a la página Web que contiene dicho applet usando un navegador. Este ejemplo es interesante porque el host local hace la mayor parte del trabajo (es quien ejecuta el applet).
Los pasos a realizar son los siguientes:
en /var/www/ReadData.html.
Taller 1: De nuevo, usando Wireshark compruebe que realmente se saltan los bytes esperados del comienzo fichero remoto.
Ejercicio 1: Indique de qué manera podemos pasar desde el cliente (nuestro navegador) un parámetro al applet de forma que podamos controlar el offset a partir del cual se envía el fichero remoto. En http://download.oracle.com/javase/6/docs/api/ puede encontrar la API (Application Programming Interface) para la versión 6 de Java. En http://download.oracle.com/javase/tutorial/ encontrará además un tutorial muy extenso sobre Java. Finalmente, puede usar Google para encontrar esta información si usa como palabras clave “applet parameters”.