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.