Saltar la navegación

2.4.- Ejemplo.

Para continuar con el ejemplo anterior y poder utilizar los sockets para enviar información vamos a realizar un ejemplo muy sencillo en el que el servidor va a aceptar tres clientes (de forma secuencial no concurrente) y le va a indicar el número de cliente que es.

Servidor.java

import java.io.* ;
import java.net.* ;
class Servidor {
    static final int Puerto=2000;
    public Servidor( ) {
    try {
        ServerSocket skServidor = new ServerSocket(Puerto);
        System.out.println("Escucho el puerto " + Puerto );
        for ( int nCli = 0; nCli < 3; nCli++) {
            Socket sCliente = skServidor.accept(); 
     System.out.println("Sirvo al cliente " + nCli);
     OutputStream aux = sCliente.getOutputStream();
     DataOutputStream flujo_salida= new DataOutputStream( aux );
     flujo_salida.writeUTF( "Hola cliente " + nCli );
     sCliente.close();
        }
        System.out.println("Ya se han atendido los 3 clientes");
    } catch( Exception e ) {
        System.out.println( e.getMessage() );
    }
}
public static void main( String[] arg ) {
     new Servidor();
}
}

Para compilar el programa ejecuta:

javac Servidor.java

y para ejecutarlo ejecuta

java Servidor

En la siguiente figura se muestra al servidor como ha procesado las solicitudes de tres clientes.

Terminal del sistema mostrando la ejecución del programa servidor.
java Servidor.