diff --git a/.classpath b/.classpath index aa96ce4..25d6c4a 100644 --- a/.classpath +++ b/.classpath @@ -5,5 +5,6 @@ + diff --git a/cifrado.jar b/cifrado.jar new file mode 100644 index 0000000..f672826 Binary files /dev/null and b/cifrado.jar differ diff --git a/src/ComunacacionJugador.java b/src/ComunacacionJugador.java index 69f2811..c2be751 100644 --- a/src/ComunacacionJugador.java +++ b/src/ComunacacionJugador.java @@ -8,6 +8,7 @@ import com.google.gson.Gson; public class ComunacacionJugador extends Thread{ Socket socket; + static String pass="soy segura"; public ComunacacionJugador(Socket socket) { this.socket = socket; this.start(); @@ -18,23 +19,23 @@ public class ComunacacionJugador extends Thread{ Gson gson = new Gson(); BufferedReader bufferEntrada = new BufferedReader(new InputStreamReader(this.socket.getInputStream())); PrintWriter bufferSalida = new PrintWriter(new OutputStreamWriter(this.socket.getOutputStream()),true); - bufferSalida.println(gson.toJson(Servidor.mostrarSalas()+"fin")); - int sala = Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class))-1; + bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.mostrarSalas()+"fin"), ComunacacionJugador.pass)); + int sala = Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class))-1; if(Servidor.addJugador(sala, this.socket)) { - bufferSalida.println(gson.toJson("Has entrado en la sala")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Has entrado en la sala"), ComunacacionJugador.pass)); switch(Servidor.determinarJuego(sala)){ case Servidor.juego4: sala -= Servidor.salas3.size(); - bufferSalida.println(gson.toJson("4")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("4"), ComunacacionJugador.pass)); partida4(bufferEntrada, bufferSalida, sala); break; case Servidor.juego3: - bufferSalida.println(gson.toJson("3")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("3"), ComunacacionJugador.pass)); partida3(bufferEntrada, bufferSalida, sala); break; } }else { - bufferSalida.println(gson.toJson("Error al entrar en la sala")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Error al entrar en la sala"), ComunacacionJugador.pass)); socket.close(); return; } @@ -50,15 +51,15 @@ public class ComunacacionJugador extends Thread{ boolean continuar = true; int jugador = 2; if(Servidor.salas3.get(sala).getJugador1().equals(this.socket)) { - bufferSalida.println(gson.toJson("Esperando al segundo jugador")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Esperando al segundo jugador"), ComunacacionJugador.pass)); synchronized (this.socket) { this.socket.wait(); } jugador = 1; - bufferSalida.println(gson.toJson("Primero")); - bufferSalida.println(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero())); - Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)), - Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)),jugador); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Primero"), ComunacacionJugador.pass)); + bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero()), ComunacacionJugador.pass)); + Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)), + Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador); /*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero, y viceversa, ya que usamos los sockets como mutex*/ synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { @@ -68,8 +69,8 @@ public class ComunacacionJugador extends Thread{ this.socket.wait(); } }else { - bufferSalida.println(gson.toJson("Iniciando partida")); - bufferSalida.println(gson.toJson("Segundo")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Iniciando partida"), ComunacacionJugador.pass)); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Segundo"), ComunacacionJugador.pass)); synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { Servidor.salas3.get(sala).jugadores[jugador%2].notify(); } @@ -84,19 +85,19 @@ public class ComunacacionJugador extends Thread{ if(finalJuego != 0) { continuar = false; if(finalJuego == jugador) { - bufferSalida.println(gson.toJson("v")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("v"), ComunacacionJugador.pass)); Servidor.salas3.remove(sala); }else { - bufferSalida.println(gson.toJson("f")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("f"), ComunacacionJugador.pass)); synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { Servidor.salas3.get(sala).jugadores[jugador%2].notify(); } } }else { - bufferSalida.println(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero())); - Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)), - Integer.parseInt(bufferEntrada.readLine()),jugador); + bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas3.get(sala).tablero.getTablero()), ComunacacionJugador.pass)); + Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)), + Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador); synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { Servidor.salas3.get(sala).jugadores[jugador%2].notify(); } @@ -114,14 +115,14 @@ public class ComunacacionJugador extends Thread{ boolean continuar = true; int jugador = 2; if(Servidor.salas4.get(sala).getJugador1().equals(this.socket)) { - bufferSalida.println(gson.toJson("Esperando al segundo jugador")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Esperando al segundo jugador"), ComunacacionJugador.pass)); synchronized (this.socket) { this.socket.wait(); } jugador = 1; - bufferSalida.println(gson.toJson("Primero")); - bufferSalida.println(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero())); - Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)),jugador); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Primero"), ComunacacionJugador.pass)); + bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero()), ComunacacionJugador.pass)); + Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador); /*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero, y viceversa, ya que usamos los sockets como mutex*/ synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { @@ -131,8 +132,8 @@ public class ComunacacionJugador extends Thread{ this.socket.wait(); } }else { - bufferSalida.println(gson.toJson("Iniciando partida")); - bufferSalida.println(gson.toJson("Segundo")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Iniciando partida"), ComunacacionJugador.pass)); + bufferSalida.println(Cifrado.cifrar(gson.toJson("Segundo"), ComunacacionJugador.pass)); synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { Servidor.salas4.get(sala).jugadores[jugador%2].notify(); } @@ -147,17 +148,17 @@ public class ComunacacionJugador extends Thread{ if(finalJuego != 0) { continuar = false; if(finalJuego == jugador) { - bufferSalida.println(gson.toJson("v")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("v"), ComunacacionJugador.pass)); Servidor.salas4.remove(sala); }else { - bufferSalida.println(gson.toJson("f")); + bufferSalida.println(Cifrado.cifrar(gson.toJson("f"), ComunacacionJugador.pass)); synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { Servidor.salas4.get(sala).jugadores[jugador%2].notify(); } } }else { - bufferSalida.println(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero())); - Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(bufferEntrada.readLine(), String.class)),jugador); + bufferSalida.println(Cifrado.cifrar(gson.toJson(Servidor.salas4.get(sala).tablero.getTablero()), ComunacacionJugador.pass)); + Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(gson.fromJson(Cifrado.desencriptar(bufferEntrada.readLine(), ComunacacionJugador.pass), String.class)),jugador); synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { Servidor.salas4.get(sala).jugadores[jugador%2].notify(); }