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