Saltar la navegación

2.2.- Cliente.

Los pasos que realiza el cliente para realizar una comunicación son:

  • Conectarse con el servidor. El cliente utiliza la función Socket para indicarse con un determinado servidor a un puerto específico. Una vez realizada la conexión se crea el socket por donde se realizará la comunicación.
  • Envío y recepción de datos. Para poder recibir/enviar datos es necesario crear un flujo (stream) de entrada y otro de salida.
  • Una vez finalizada la comunicación se cierra el socket.
Esquema de funcionamiento interno del modelo cliente/servidor en el que se muestran las diferentes módulos de funcionamiento y su interconexión.
Esquema de funcionamiento interno del modelo cliente/servidor.

Para conectarse a un servidor se utiliza la función Socket indicando el equipo y el puerto al que desea conectarse. Su sintaxis es:

Socket sCliente = new Socket( Host , Puerto );

donde Host es un string que guarda el nombre o dirección IP del servidor y Puerto es una variable del tipo int que guarda el puerto. "

Si lo prefiere también puede realizar la conexión directamente:

Socket sCliente = new Socket("192.168.1.200", 1500);

Una vez establecida la comunicación, se crean los streams de entrada y salida para realizar las diferentes comunicaciones entre el cliente y el servidor. En el siguiente apartado veremos la creación de streams.

Finalmente, una vez terminada la comunicación se cierra el socket de la siguiente forma:

sCliente.close();

A continuación se muestra el código comentado de un servidor.

import java.io.*;
import java.net.*;
class Cliente {
    static final String Host = "localhost";
    static final int Puerto=2000;
    public Cliente( ) {
        try{
            // Me conecto al servidor en un detrminado puerto
            Socket sCliente = new Socket( Host, Puerto );
// TAREAS QUE REALIZA EL  CLIENTE
           // Cierro el socket
            sCliente.close();
        } catch( Exception e ) {
            System.out.println( e.getMessage() );
        }
    }
    public static void main( String[] arg ) {
        new Cliente();
    }
}