claret

Java proporciona mecanismos potentes y a la vez sencillos para construir programas para redes tales como Internet. Java aporta versatilidad, portabilidad, clases especializadas para gran número de servicios (incluidas de serie), manejo eficiente de la memoria, etc. Entre las clases que permiten la comunicación tenemos la clase URL en un nivel superior y las clases Socket y ServerSocket a un nivel más bajo.

Mediante la clase Socket incluida en el paquete java.net podemos crear conexiones de flujo, que son los que utilizan el protocolo TCP, entre dos ordenadores. El tipo de datos en la comunicación puede ser cualquiera, y por ello el protocolo TCP es usado por http, ftp, telnet, etc. Más adelante veremos un sencillo ejemplo de comunicación entre un navegador y una aplicación Java y veremos de forma básica como es el protocolo http y como interacciona un navegador con un servidor.

Los Sockets o enchufes son semejantes a conexiones telefónicas entre dos ordenadores remotos, la comunicación es continúa y finaliza cuando uno de los dos ordenadores cierra su conexión.

La clase ServerSocket es una clase incluida en java.net que sirve para atender peticiones de conexiones, lo cual es útil a la hora de crear un servidor. Como veremos más adelante, en un servidor hay un bucle infinito donde se llama al método accept de la clase ServerSocket quedando a la espera de aceptar una conexión. Cuando esta conexión se produce esta clase devuelve un objeto de tipo socket que es el que utiliza el servidor para comunicarse con el cliente, de este socket podemos conseguir una corriente de entrada y otra de salida.

Vamos a continuación a ver un programa sencillo ejemplo de como funcionan estas clases. Para ejecutar este programa debemos tener un JDK que compile el programa y luego lo ejecute.

Para el caso de CrearCliente necesitamos un servidor como Apache instalado en nuestra máquina que tenga la dirección localhost (127.0.0.1) o cualquier dirección de Internet a la que tengamos acceso y que sirva páginas html.

Para el caso de CrearServidor necesitamos un navegador en el cual visualizaremos lo que nos devuelve el servidor.

Método CrearCliente.-

En el método CrearCliente creamos un socket que va a conectar con una dirección de Internet local (127.0.0.1) y con index.html a través del puerto 80. A el socket se le especifican estos parámetros en el constructor.

Una vez realizada la conexión obtenemos un DataOutputStream del socket con getOutputStream y escribimos nuestra petición que en nuestro caso es igual a la que realiza el Internet Explorer. En esa corriente de salida escribimos nuestros datos. Después obtenemos un DataInputStream con getInputStream y leemos lo que nos llega que puede ser el texto de una página html. Por último cerramos la conexión con close una vez que no hay más datos que leer.

Podemos ver que la creación de un Socket es sencilla y que leer y escribir de un socket es como leer y escribir de un archivo.

Método CrearServidor

En este método vamos a crear un servidor sencillo que va atender los datos de un navegador tal como Internet Explorer. Este servidor va a servir por la dirección 127.0.0.1 que es la de localhost, y por el puerto 80. Estas dos condiciones se especifican al crear el ServerSocket (Ojo con la dirección especificada ya que tiene que existir en la máquina).

Una vez creado el ServerSocket se crea un bucle infinito en el cual el método accept espera hasta recibir una conexión. Este método al aceptar la conexión devuelve un Socket que es con el que vamos a realizar la conexión al cliente. Al igual que el método anterior obtenemos un DataInputStream con getInputStream del cual vamos a leer los datos desde el cliente.

Etiquetas: edit post
0 Responses

Publicar un comentario