import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

// Se trata de enviar una foto de servidor a cliente
class Servidor_Foto_Hilo{
    public static void main(String args[]){
        try{
            ServerSocket socketServidor=new ServerSocket(5005);
            System.out.println("Servidor inicializado");
            // Bucle infinito
            while (true){
                // Se espera y acepta un nuevo cliente
                Socket cliente = socketServidor.accept();
                System.out.print("Cliente pidiendo datos ");
                // Como ha llegado un cliente nuevo, se lanza en un hilo aparte.
                Conexion nuevoCliente = new Conexion(cliente);
                nuevoCliente.start();       
            } 
        }catch(Exception e){
        }
    }
}


class Conexion extends Thread {

    Socket socket;
    
    Conexion(Socket s){
        socket=s;
    }
   
    
   public void run (){
        try{
           // Dependiendo del segundo que sea, envio una foto u otra
           Calendar calendario = new GregorianCalendar();
           int segundos = calendario.get(Calendar.SECOND);
           int numeroFoto=(int)(segundos/5);
           // Del segundo :00 al :04, la foto 0, del :05 al :09 la foto 1...
           System.out.println(numeroFoto);
           File fichero=new File("./"+numeroFoto+".jpg");
           // Leo la imagen en memoria y la envio por el socket
           BufferedImage bufferedImage = ImageIO.read(fichero);
           ImageIO.write(bufferedImage, "jpg", socket.getOutputStream());
           socket.getOutputStream().flush();
           // Finalizando
           socket.close();
        }catch(Exception e){
        }
   }
} 