Logo Studenta

ILerna _ DAM _Desarrollo Aplicaciones Multiplataforma_ _ asignatura_ MP9_ Programación de servicios y procesos _ PAC_UF3_M0

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

PAC_DESARROLLO_M9_Olibo_Andre/PAC_DESARROLLO_M9_Olibo_Andre.iml
 
 
 
 
 
 
 
 
 
 
 
PAC_DESARROLLO_M9_Olibo_Andre/.idea/.gitignore
# Default ignored files
/shelf/
/workspace.xml
PAC_DESARROLLO_M9_Olibo_Andre/.idea/workspace.xml
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 1606291701832
 
 
 1606291701832
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PAC_DESARROLLO_M9_Olibo_Andre/.idea/modules.xml
 
 
 
 
 
 
PAC_DESARROLLO_M9_Olibo_Andre/.idea/misc.xml
 
 
 
 
PAC_DESARROLLO_M9_Olibo_Andre/src/server/Tarea.java
PAC_DESARROLLO_M9_Olibo_Andre/src/server/Tarea.java
package server;
public class Tarea {
    private String descripcion;
    private String estado;
    public Tarea (String descripcion, String estado){
        this.descripcion = descripcion;
        this.estado = estado;
    }
    public String getDescripcion() {
        return descripcion;
    }
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
    public String getEstado() {
        return estado;
    }
    public void setEstado(String estado) {
        this.estado = estado;
    }
    @Override
    public String toString() {
        return "Tarea{" +
                "descripcion='" + descripcion + '\'' +
                ", estado='" + estado + '\'' +
                '}';
    }
}
PAC_DESARROLLO_M9_Olibo_Andre/src/server/Main.java
PAC_DESARROLLO_M9_Olibo_Andre/src/server/Main.java
package server;
import java.io.IOException;
public class Main {
    public static void main(String[] args) {
        try {
            Server server = new Server();
            server.iniciar();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
PAC_DESARROLLO_M9_Olibo_Andre/src/server/Server.java
PAC_DESARROLLO_M9_Olibo_Andre/src/server/Server.java
package server;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
    private final int PUERTO = 9876;
    private ServerSocket serversocket;
    private Socket socket;
    public Server() throws IOException {
        serversocket = new ServerSocket (PUERTO);
        socket = new Socket();
    }
    public void iniciar() throws IOException {
        System.out.println("Iniciando servidor");
        while (true) { //bucle infinito para que el servidor no se apague nunca.
            socket = serversocket.accept(); //Para recibir un cliente y establecerlo en esta variable.
            System.out.println("Cliente conectado");
            DataInputStream entrada = new DataInputStream(socket.getInputStream()); //Estamos cogiendo los datos del socket para leer lo que nos envia el cliente.
            DataOutputStream salida = new DataOutputStream(socket.getOutputStream()); //Para mandar datos
            salida.writeUTF("Hola, ¿como te llamas?"); //Para que en lugar de sacar por consola como el Sout, se lo mande al cliente.
            System.out.println("El nombre del usuario es: " + entrada.readUTF());
            salida.writeUTF("¿Cuantas tareas quieres realizar?");
            int entero = entrada.readInt();
            System.out.println("Número de tareas recibidas: " + entero);
        for (int i = 0; i < entero; i++ ) {
            salida.writeUTF("Tarea "+ i + ": ");
            salida.writeUTF("Introduzca la descripción de la tarea: ");
            String detalle = entrada.readUTF();
            System.out.println("Descripción de la tarea número " + i + ": " + detalle);
            salida.writeUTF("Indique el estado de la tarea: ");
            String estado = entrada.readUTF();
            System.out.println("El estado de la tarea número " + i +" es: " + estado);
        }
        }
    }
}
PAC_DESARROLLO_M9_Olibo_Andre/src/client/Client.java
PAC_DESARROLLO_M9_Olibo_Andre/src/client/Client.java
package client;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
public class Client {
    private Socket socket;
    public Client() throws IOException {
        socket = new Socket("localhost", 9876);
    }
    public void iniciar() throws IOException {
        Scanner teclado = new Scanner(System.in); //System.in para establecer el teclado como entrada para que scanner sepa de donde leer.
        System.out.println("Iniciando el cliente");
        DataInputStream entrada = new DataInputStream(socket.getInputStream()); //Para comunicarse con el servidor, establecer la comunicación.
        DataOutputStream salida = new DataOutputStream(socket.getOutputStream()); //Salida de uno con la entrada de otro y viceversa.
        System.out.println(entrada.readUTF()); //Si en un lado hacemos readUTF, en el otro lado debemos hacer un write UTF
        String nombre = teclado.nextLine();
        salida.writeUTF(nombre);
        System.out.println(entrada.readUTF()); //Para leer lo que nos ha enviado el servidor.
        int num = teclado.nextInt(); //Va a guardar el número de tareas que tenemos que realizar.
        teclado.nextLine(); //Limpiador de basura para el salto de linea.
        salida.writeInt(num);
        for (int i = 0; i < num; i++ ) {
            System.out.println(entrada.readUTF()); //Lee una linea y muestra la siguiente, vuelve a leer la siguiente y vuelve a mostrar.
            System.out.println(entrada.readUTF());
            salida.writeUTF(teclado.nextLine());
            System.out.println(entrada.readUTF());
            salida.writeUTF(teclado.nextLine());
        }
    }
}
PAC_DESARROLLO_M9_Olibo_Andre/src/client/Main.java
PAC_DESARROLLO_M9_Olibo_Andre/src/client/Main.java
package client;
import java.io.IOException;
public class Main {
    public static void main(String[] args) { //atajo: psvm
        try {
            Client cliente = new Client(); //Thowrs lanzamos la excepcion hacia arriba. En este caso main llama a cliente, por lo tanto si cliente lanza la excepcion, la recibe main.
            cliente.iniciar();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
PAC_DESARROLLO_M9_Olibo_Andre/out/production/PAC_DESARROLLO_M9_Olibo_Andre/server/Tarea.class
PAC_DESARROLLO_M9_Olibo_Andre/out/production/PAC_DESARROLLO_M9_Olibo_Andre/server/Server.class
PAC_DESARROLLO_M9_Olibo_Andre/out/production/PAC_DESARROLLO_M9_Olibo_Andre/server/Main.class
PAC_DESARROLLO_M9_Olibo_Andre/out/production/PAC_DESARROLLO_M9_Olibo_Andre/client/Client.class
PAC_DESARROLLO_M9_Olibo_Andre/out/production/PAC_DESARROLLO_M9_Olibo_Andre/client/Main.class