La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Práctica 3 Entrada/Salida y Manejo de excepciones

Presentaciones similares


Presentación del tema: "Práctica 3 Entrada/Salida y Manejo de excepciones"— Transcripción de la presentación:

1 Práctica 3 Entrada/Salida y Manejo de excepciones
Dpto. de Ingeniería de Sistemas Telemáticos Abril 2004

2 Objetivos Se cubren los siguientes aspectos Escenario
Lectura de un fichero de entrada Manejo de excepciones Escenario Configuración de un router Abril 2004 Práctica 3

3 Internet: red de “redes”
A R2 Estaciones de usuario (PC) R1 R3 Servidores R4 R5 Router Conexión entre dispositivos, a través de una red B Camino que va siguiendo el tráfico de la comunicación del PC A al servidor B (ruta) Abril 2004 Práctica 3

4 Router Un router es un dispositivo con conexiones a otros dispositivos a través de redes y que actúa como encaminador de tráfico. Cada conexión se realiza a través de una interfaz, que es el punto de comunicación entre un dispositivo y el exterior. Para encaminar el tráfico es necesario conocer las rutas hacia los posibles destinos no la ruta completa, sólo el “gateway” o “siguiente salto”. (R1 sólo necesita saber que para encaminar el tráfico dirigido hacia B, hay que enviarlo a R2) Abril 2004 Práctica 3

5 Dirección IP En Internet, se necesita “algo” para identificar unívocamente las interfaces y redes. Para ello se utilizan las direcciones IP (Internet Protocol) Formada por 4 bytes Cada byte permite 28 valores, entre 0 y 255 Notación Notación decimal: Notación binaria: 138 4 54 Abril 2004 Práctica 3

6 Dirección de Red Una dirección de red identifica el conjunto de direcciones IP posibles de las interfaces conectadas en una red El procedimiento empleado es hacer que todas las direcciones IP de una red tengan una parte común: los primeros N bits Esa parte común se representa mediante una máscara de red La máscara de red se representa como una dirección IP, con los primeros N bits igual a 1 y el resto de bits 0, ej Por tanto, una dirección de red queda definida mediante: dirección IP, máscara de red Ej. Red de área local con un router y varios servidores: / x Abril 2004 Práctica 3

7 Interfaz Una interfaz, se identificará por:
un nombre, de uso interno en el dispositivo (ej, ce0) una Dirección IP (ej, ) un identificador de la red a la que está conectada (dirección de la red) La dirección de red se genera a partir de: Dirección IP (ej, ) una Máscara de Red (ej, ) Por tanto, una interfaz queda definida mediante: nombre, dirección IP, máscara de red ce0 / Abril 2004 Práctica 3

8 Rutas Para encaminar el tráfico es necesario conocer las rutas hacia los posibles destinos Dos casos: Si el destino está en una de las redes a las que estoy conectado directamente, se lo envío directamente a través de esa red. Si el destino no está en una de las redes a las que estoy conectado directamente, se lo intentaré enviar indirectamente a través de otro router con el que sí tengo conexión directa. Un router guarda información sobre las rutas que conoce (tabla de encaminamiento). Cada ruta especifica: dirección de la red destino (= dirección IP + máscara) dirección IP del “gateway” (dispositivo al que tengo que reenviar el tráfico dirigido a cualquier dirección de esa red destino) Por tanto, una ruta queda definida mediante: dirección de red (destino), dirección IP (gateway) Abril 2004 Práctica 3

9 Parámetros de un Router
Un router queda definido por: Su nombre Sus interfaces de red; cada interfaz queda definida por: Un nombre Una Dirección IP Una Máscara de red Su tabla de rutas; cada ruta queda definida por: Red destino (Dirección de Red) Gateway (Dir. IP) Abril 2004 Práctica 3

10 Fichero de configuración
// nombre del router device name "my router" // definición de interfaces interface add ce0 " " " " interface add ce1 " " " " interface add ce2 " " " " // definición de rutas route add " " " " " " route add " " " " " " route add " " " " " " Abril 2004 Práctica 3

11 ¿Qué hay que hacer? Implementar una clase que lea un fichero de configuración de un router, como el anterior, y cree un router con dicha configuración Abril 2004 Práctica 3

12 Diagrama de Clases Abril 2004 Práctica 3

13 Clases Clases (y ficheros) proporcionados: Clases pedidas:
Clase DireccionIP.java Clase DireccionIPException.java Clase DireccionRed.java Clase Interfaz.java Clase Ruta.java Clase Router.java Clase Configuracion.java Fichero de ejemplo de configuración: Device.txt Clase Entrega.java Clases pedidas: Clase ConfigRouterException.java Clase ConfigRouter.java Clase ConfigRouterTest.java Abril 2004 Práctica 3

14 Entrada/Salida para ConfigRouter
Para leer el fichero java.io.File(nomfichero) java.io.FileReader(File) Para descomponer la entrada en tokens java.io.StreamTokenizer Abril 2004 Práctica 3

15 StreamTokenizer final char DELIMITADOR_WORD = ‘”’;
fr = new FileReader (new File(“fichero”)); st = new StreamTokenizer(fr); // una secuencia de caracteres encerrada // entre dos caracteres DELIMITADOR_WORD es //vista como un solo token st.quoteChar(DELIMITADOR_WORD) // ignora comentarios del tipo “//” st.slashslashComments(true) // ignora comentarios del tipo “/*...*/” st.slashStarComments(true) Abril 2004 Práctica 3

16 Método nextToken de StreamTokenizer
El método nextToken() de StreamTokenizer puede devolver varios valores: TT_WORD: indica que el token es una palabra. TT_NUMBER: indica que el token es un número. TT_EOL: indica que se ha llegado al final de una línea. Para que esto funcione, debe haber sido invocado el método eolIsSignificant con el argumento true. TT_EOF: indica el final de la entrada. Abril 2004 Práctica 3

17 Ejemplo trivial Abril 2004 Práctica 3
// _st es un objeto de la clase StreamTokenizer for (int lexema = _st.nextToken(); lexema != StreamTokenizer.TT_EOF; lexema = _st.nextToken()) System.out.println (_st.sval); device name my router interface add ce0 Add ce1 ce2 route route add Abril 2004 Práctica 3

18 Palabras Clave Las palabras clave utilizadas en la definición de un router son las siguientes: device interfaz route Además, existen otras dos palabras clave, que representan operaciones: name add Abril 2004 Práctica 3

19 Posible algoritmo de reconocimiento: método configura
Abrir fichero para lectura Crear StreamTokenizer Leer una primera línea que comience por device Si el siguiente token es name tratar de reconocer un nombre para el router Mientras haya tokens Si el primer token es interfaz Si el siguiente token es add Tratar de reconocer una definición de interfaz para el router Si el primer token es router Tratar de reconocer una definición de Ruta para el dispositivo Si en algún momento se llega a una situación no deseada (token incorrecto, fin de línea, etc.) se debe lanzar una Excepción: ConfigRouterException. Abril 2004 Práctica 3

20 Sugerencias Crear los siguientes métodos
getWord, para leer una palabra (o secuencia de palabras entrecomilladas) getDireccionIP, para leer una dirección IP procesaNombre, para leer líneas que comiencen por device procesaInterfaz, para leer líneas que comiencen por interfaz procesaRuta, para leer líneas que comiencen por route Abril 2004 Práctica 3

21 Logging Se deberán incluir trazas en la implementación de la clase pedida ConfigRouter: se utilizará java.util.logging niveles de trazado: SEVERE: para fallos graves, como excepciones que no se pueden tratar; se indica la excepción que se lanza. INFO: para mostrar información de alto nivel: entrada y salida en los métodos. FINE: para mostrar información de bajo nivel, concretamente de los tokens que se van leyendo de la entrada. Se puede indicar en tiempo de ejecución dónde está el fichero de configuración para el paquete java.util.logging: java -Djava.util.logging.config.file=logging.properties lprg.p3.ConfigRouterTest Abril 2004 Práctica 3

22 Logging: Ejemplos 11-abr-2004 23:42:17 lprg.p3.ConfigRouter getWord
INFO: Entrada FINA: token leído: device FINA: token leído: name .... 11-abr :46:40 lprg.p3.ConfigRouter getWord FINA: token leído: 11-abr :46:40 lprg.p3.ConfigRouter getDireccionIP GRAVE: Lanzada ConfigRouterException Abril 2004 Práctica 3

23 Pruebas: Clase Configuracion.java
Existe una clase Configuración.java que permite comprobar la funcionalidad del Router: Crea un router a partir de un fichero de configuración Calcula rutas para algunas direcciones IP predefinidas en el código Solicita direcciones IP por la entrada estándar y dice por qué interfaz deberá encaminarse el tráfico dirigido hacia esa dirección IP java lprg.p3.Configuracion –Djava.util.logging.config.file=logging.properties lprg\p3\Device.txt > ce2: / > ce1: / > ce0: / > null device name my router" interface add ce0 " " " " interface add ce1 " " " " interface add ce2 " " " " route add " " " " " " route add " " " " " " route add " " " " " " Introduzca direcciones IP para averiguar la ruta: > ce2: / > ce0: / Abril 2004 Práctica 3

24 Excepciones en ConfigRouter.java
Deben lanzarse excepciones: IOException: si no se puede abrir el fichero porque no existe o no tenemos permisos ConfigRouterException: no se reconoce el tipo de elemento de una línea Tratamiento: IOException: no se pueden tratar, el programa debe terminar ConfigRouterException: tampoco se tratan, el programa termina DireccionIPException deben capturarse y propagarse en forma de RouterException Cada vez que se lance una Excepción se generará una línea de log con el nivel SEVERE Abril 2004 Práctica 3

25 Pruebas en ConfigRouterTest.java
Se proporcionan algunas pruebas muy simples: Fichero vacío Fichero que no existe Deberá completarse con casos de prueba adicionales que permitan comprobar toda la funcionalidad de la clase ConfigRouter ¿Cómo escribir en un fichero? FileWriter fw = new FileWriter(<nomfichero>); BufferedWriter salida = new BufferedWriter(fw); salida.write(<String>); salida.write (<String>); ... salida.close(); Abril 2004 Práctica 3

26 Entrega Todas las clases pertenecerán al package lprg.p3
Se deberán dejar en el directorio lprg/p3 de su cuenta del laboratorio Se piden los ficheros ConfigRouter.java ConfigRouterException.java ConfigRouterTest.java Fecha límite: 30 de abril de 2004, 23:59 Abril 2004 Práctica 3


Descargar ppt "Práctica 3 Entrada/Salida y Manejo de excepciones"

Presentaciones similares


Anuncios Google