Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| dad:repasoparcial1 [2023/11/09 10:04] – creado thejuanvisu | dad:repasoparcial1 [2023/11/09 11:13] (actual) – thejuanvisu | ||
|---|---|---|---|
| Línea 9: | Línea 9: | ||
| * No se puede escribir en ambos extremos a la vez, tampoco se debe poder leer en los 2 extremos a la vez ya que podemos bloquear el programa (Ambos esperan a que el otro termine de leer) | * No se puede escribir en ambos extremos a la vez, tampoco se debe poder leer en los 2 extremos a la vez ya que podemos bloquear el programa (Ambos esperan a que el otro termine de leer) | ||
| * ServerSocket: | * ServerSocket: | ||
| + | |||
| + | ===== Contenido parcial 1 ===== | ||
| + | - Preguntas pequeñas de teoría 2 a 3 puntos | ||
| + | - Computación distribuida | ||
| + | - Hilos | ||
| + | - Sockets | ||
| + | - Preguntas programación 1 a 2 Puntos | ||
| + | - Detectar Fallos en el código | ||
| + | - Práctica | ||
| + | - Implementar un Cliente y un servidor con Sockets | ||
| + | - El profe se va a inventar un protocolo/ | ||
| + | - Ver que respuesta dan el servidor a un comando de un cliente por sockets (Como el chat pero con Cases) | ||
| + | - Server Socket -> While True, lanzo hilo | ||
| + | - Si un cliente tiene un listado de algo que guarda en el objeto hilo | ||
| + | - Los hilos comparten la información para estar centralizados | ||
| + | - Conexión con otros hilos a través del serverSocket | ||
| + | < | ||
| + | constructor< | ||
| + | this.x = x; | ||
| + | } | ||
| + | run(){ | ||
| + | this.x | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Sugerencias/ | ||
| + | |||
| + | * Si pide un protocolo, en el cliente debemos tener como un menú de consola o meter cosas para usar el protocolo y que el cliente mande algo al servidor para que este ejecute lo que tenga que escribir | ||
| + | * Construimos el servidor para el protocolo. El Servidor debe tener un Switch para que haga una acción en función a lo que reciba del cliente | ||
| + | * El cliente debe ser de base un cliente vacío que tenga un readln y un flush (PW.println()), | ||
| + | * Para cada comando o funcionalidad del servidor debemos ejecutar el cliente y meter algo por teclado, para evitar perder tiempo debemos ir metiendo todos los comandos que queramos ejecutar a machete. | ||
| + | < | ||
| + | // | ||
| + | While True | ||
| + | Creamos server socket | ||
| + | Acepto conexión | ||
| + | Creo Hilo | ||
| + | Lanzo Hilo | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Utilizaremos una implementación similar a la del chat de clase (Multicliente) | ||
| + | |||
| + | |||
| + | |||
| + | ===== Para la práctica (Incompleto) ===== | ||
| + | |||
| + | < | ||
| + | public class ClaseAGuardar implements Serializable{ | ||
| + | private String campo; | ||
| + | public String getCampo(){ | ||
| + | return campo; | ||
| + | } | ||
| + | public String setCampo(String campo){ | ||
| + | this.campo = campo; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | public class EscribirEnFichero{ | ||
| + | public static void main(String args[]){ | ||
| + | FileOutputStream fos = null; | ||
| + | ObjectOutputStream oos= null; | ||
| + | } | ||
| + | } | ||
| + | </ | ||