Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| dad:sockets-3 [2023/10/11 11:37] – creado thejuanvisu | dad:sockets-3 [2023/11/23 11:05] (actual) – thejuanvisu | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Sockets en java III ====== | ====== Sockets en java III ====== | ||
| Queremos crear un server que cuando reciba conexión de un cliente cree un hilo y lo lance hasta que reciba la cadena salir: | Queremos crear un server que cuando reciba conexión de un cliente cree un hilo y lo lance hasta que reciba la cadena salir: | ||
| + | |||
| + | ===== Clase SimpleThread ===== | ||
| + | <code java> | ||
| + | package sockets2LaPelicula; | ||
| + | |||
| + | public class SimpleThread extends Thread{ | ||
| + | public static final int FOR_EVER = -1;// | ||
| + | protected long delay;// | ||
| + | protected int times;// | ||
| + | public SimpleThread (long delay, int times) { | ||
| + | System.out.println(" | ||
| + | this.delay = delay; | ||
| + | this.times = times; | ||
| + | } | ||
| + | public void run() { | ||
| + | try { | ||
| + | for(int aux = times; (times> | ||
| + | System.out.println(" | ||
| + | sleep(delay); | ||
| + | } | ||
| + | }catch(Exception e) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Clase Servidor ===== | ||
| + | |||
| + | <code java> | ||
| + | package sockets2LaPelicula; | ||
| + | |||
| + | import java.io.BufferedReader; | ||
| + | import java.io.IOException; | ||
| + | import java.io.InputStreamReader; | ||
| + | import java.io.OutputStreamWriter; | ||
| + | import java.io.PrintWriter; | ||
| + | import java.net.ServerSocket; | ||
| + | import java.net.Socket; | ||
| + | |||
| + | import sockets2LaPelicula.Cliente2; | ||
| + | |||
| + | public class Servidor2 { | ||
| + | public static int PUERTO = 5000;// | ||
| + | public void ejecutarHastaCadenaSalir() {//Se ejecuta hasta recibir cadena salir | ||
| + | try { | ||
| + | |||
| + | |||
| + | System.out.println(" | ||
| + | ServerSocket serverSocket = new ServerSocket(Servidor2.PUERTO); | ||
| + | Socket socket = serverSocket.accept(); | ||
| + | |||
| + | BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));// | ||
| + | PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));// | ||
| + | |||
| + | String cadenaRecibida = ""; | ||
| + | while(!(cadenaRecibida = br.readLine()).equalsIgnoreCase(" | ||
| + | pw.println(cadenaRecibida); | ||
| + | System.out.println(" | ||
| + | initialize(); | ||
| + | pw.flush(); | ||
| + | } | ||
| + | System.out.println(" | ||
| + | |||
| + | |||
| + | }catch(IOException e){ | ||
| + | e.printStackTrace(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | public static void main(String[] args) { | ||
| + | Servidor2 server = new Servidor2(); | ||
| + | server.ejecutarHastaCadenaSalir(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </code java> | ||
| + | |||
| + | ===== Clase Cliente ===== | ||
| + | |||
| + | |||
| + | < | ||
| + | package sockets2LaPelicula; | ||
| + | |||
| + | import java.io.BufferedReader; | ||
| + | import java.io.IOException; | ||
| + | import java.io.InputStreamReader; | ||
| + | import java.io.OutputStreamWriter; | ||
| + | import java.io.PrintWriter; | ||
| + | import java.net.Socket; | ||
| + | import java.util.Scanner; | ||
| + | |||
| + | import sockets2LaPelicula.Cliente2; | ||
| + | import sockets2LaPelicula.Servidor2; | ||
| + | |||
| + | public class Cliente2 { | ||
| + | public void ejecutar() { | ||
| + | try { | ||
| + | |||
| + | |||
| + | System.out.print(" | ||
| + | |||
| + | Socket socket = new Socket (" | ||
| + | |||
| + | System.out.println(" | ||
| + | |||
| + | |||
| + | BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));// | ||
| + | PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));// | ||
| + | |||
| + | String cadenaRecibida = br.readLine(); | ||
| + | System.out.println(cadenaRecibida); | ||
| + | |||
| + | pw.println(" | ||
| + | pw.flush(); | ||
| + | |||
| + | System.out.println(" | ||
| + | |||
| + | }catch(IOException e){ | ||
| + | e.printStackTrace(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | public void ejecutarInfinito() { | ||
| + | try { | ||
| + | |||
| + | |||
| + | System.out.print(" | ||
| + | |||
| + | Socket socket = new Socket (" | ||
| + | |||
| + | System.out.println(" | ||
| + | |||
| + | |||
| + | BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));// | ||
| + | PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));// | ||
| + | |||
| + | String lineaLeida =""; | ||
| + | Scanner teclado = new Scanner(System.in); | ||
| + | |||
| + | while(true) { | ||
| + | lineaLeida = teclado.nextLine(); | ||
| + | pw.println(lineaLeida); | ||
| + | pw.flush(); | ||
| + | } | ||
| + | |||
| + | |||
| + | }catch(IOException e){ | ||
| + | e.printStackTrace(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | public static void main(String[] args) { | ||
| + | Cliente2 client = new Cliente2(); | ||
| + | client.ejecutarInfinito(); | ||
| + | |||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||