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.
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();
}
}