Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
dad:ejercicioprotocolos [2023/11/13 10:47] – thejuanvisu | dad:ejercicioprotocolos [2023/11/23 11:30] (actual) – thejuanvisu | ||
---|---|---|---|
Línea 4: | Línea 4: | ||
===== Elemento ===== | ===== Elemento ===== | ||
Este será la clase con el que trabajaremos: | Este será la clase con el que trabajaremos: | ||
- | < | + | < |
public class Elemento{ | public class Elemento{ | ||
// | // | ||
Línea 22: | Línea 22: | ||
Este será el cliente que utilizaremos para enviar señales al serverSocket, | Este será el cliente que utilizaremos para enviar señales al serverSocket, | ||
- | < | + | < |
public class Cliente{ | public class Cliente{ | ||
- | try{//Se debe hacer siempre try Catch cuando andamos con sockets | + | |
- | socket = new Socket(" | + | |
+ | socket = new Socket(" | ||
| | ||
- | | + | |
- | BufferedReader br = new BufferedReader(new InputStramReader(socket.getInputStream())); | + | BufferedReader br = new BufferedReader(new InputStramReader(socket.getInputStream())); |
- | PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); | + | PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); |
| | ||
- | | + | |
- | String rl = ""; | + | String rl = ""; |
| | ||
- | | + | |
- | pw.println(sc.nextLine());// | + | pw.println(sc.nextLine());// |
- | pw.flush(); Limpiamos salida | + | pw.flush(); Limpiamos salida |
| | ||
- | | + | |
- | System.out.println((rl = br.readLine())) | + | System.out.println((rl = br.readLine())) |
- | }while(lineaLeida.contentEquals(" | + | }while(lineaLeida.contentEquals(" |
| | ||
- | | + | |
- | e.printStackTrace(); | + | e.printStackTrace(); |
+ | } | ||
} | } | ||
} | } | ||
- | |||
public static void main(String[] args){ | public static void main(String[] args){ | ||
(new Cliente()).ejecutar(); | (new Cliente()).ejecutar(); | ||
Línea 53: | Línea 54: | ||
===== Servidor ===== | ===== Servidor ===== | ||
- | < | + | < |
public class Server{ | public class Server{ | ||
ServerSocket serverSocket;// | ServerSocket serverSocket;// | ||
Línea 84: | Línea 85: | ||
En el ServerThread extendemos la funcionalidad de Thread e implementamos la funcionalidad del server Socket. En este caso lo que hará nuestro servidor es reaccionar a los comandos que se le manden y en caso de recibir un comando inválido enviar un mensaje indicando que el comando no es válido. | En el ServerThread extendemos la funcionalidad de Thread e implementamos la funcionalidad del server Socket. En este caso lo que hará nuestro servidor es reaccionar a los comandos que se le manden y en caso de recibir un comando inválido enviar un mensaje indicando que el comando no es válido. | ||
- | < | + | < |
public class ServerThread extends Thread{ | public class ServerThread extends Thread{ | ||
| | ||
Línea 124: | Línea 125: | ||
} | } | ||
break; | break; | ||
- | | + | |
+ | //Comando GET, formato: Get Nombre (Get patata) | ||
case " | case " | ||
if(linealeida.legth==2){ //Si el comando tiene GET + el Nombre | if(linealeida.legth==2){ //Si el comando tiene GET + el Nombre | ||
- | | + | ArrayList< |
+ | elementos = Server.listaElementos.get(lineaLeida[1]);// | ||
+ | |||
+ | if(elementos == null){//Si no se encuentra el elemento | ||
+ | pw.println(" | ||
+ | pw.flush; | ||
+ | }else{ | ||
+ | double total = 0; | ||
+ | for(Elemento elemento: elementos){ | ||
+ | total+=elemento.cantidad; | ||
+ | } | ||
+ | pw.println(total); | ||
+ | pw.flush; | ||
+ | } | ||
+ | |||
+ | }else{ | ||
+ | pw.println(linealeida[0]+" | ||
+ | pw.flush(); | ||
} | } | ||
+ | break; | ||
+ | | ||
+ | //Comando DELETE, uso: DELETE Nombre (DELETE Patata) | ||
+ | case " | ||
+ | if(linealeida.lenght == 2){ | ||
+ | ArrayList< | ||
+ | Elementos = Server.listaElementos.get(lineaLeida[1]); | ||
+ | if((Elementos==null || Elementso.size()==0)){ | ||
+ | pw.println(" | ||
+ | pw.flush(); | ||
+ | |||
+ | }else{ | ||
+ | Elementos.remove(elementos.size()-1); | ||
+ | pw.println(" | ||
+ | pw.flush(); | ||
+ | } | ||
+ | }else{ | ||
+ | pw.println(linealeida[0] + "se ha usado incorrectamente\nUso: | ||
+ | } | ||
+ | break; | ||
+ | | ||
+ | | ||
+ | | ||
+ | //Comando de salida EXIT | ||
+ | case " | ||
+ | if(lineaLeida.leght==1){ | ||
+ | pw.println(" | ||
+ | pw.flush(); | ||
+ | }else{ | ||
+ | pw.printl(" | ||
+ | pw.flush(); | ||
+ | } | ||
+ | break; | ||
+ | | ||
+ | //En caso de introducir comando invalido | ||
+ | default: | ||
+ | pw.prinln(" | ||
+ | pw.flush; | ||
+ | break; | ||
| | ||
| | ||
Línea 144: | Línea 202: | ||
</ | </ | ||
+ | ===== DELETE ===== | ||
+ | |||
+ | <code java> | ||
+ | case " | ||
+ | |||
+ | if(linealeida.length == 2) { | ||
+ | ArrayList< | ||
+ | |||
+ | elementos = Server.listaElementos.get(linealeida[1]); | ||
+ | |||
+ | if(elementos == null) { | ||
+ | pw.println(" | ||
+ | pw.flush(); | ||
+ | }else { | ||
+ | elementos.remove(elementos.size()-1); | ||
+ | pw.println(" | ||
+ | pw.flush(); | ||
+ | } | ||
+ | |||
+ | }else { | ||
+ | pw.println(" | ||
+ | pw.flush(); | ||
+ | } | ||
+ | |||
+ | break; | ||
+ | </ |