Exam-1-Lab-Redes.pdf CerdoShinChan Redes de Computadores 2º Grado en Ingeniería Informática Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad. Examen1 Lab Redes 1E2 Este examen comprende las prácticas de la 1 a la 4 de la asignatura Redes de Computadores. El examen consiste en un código Java similar a las prácticas 2 y 4. Se recomienda tener la práctica 2 hecha y con el código preparado, pues se permite consultar el código de otras sesiones. La práctica consta de las siguientes tareas: • • • • • • • Conectar un Socket al servidor Zoltar con el puerto 8000 Recibir un número del servidor. Importante: Leer el número con el método scan.nextLine() Una vez leído el valor se recomienda parsear la variable a un entero, pues nos hará falta en el siguiente paso. Cuando tengamos el valor como entero hemos de calcular su cuadrado y enviarlo al Zoltar. Para ello usaremos la clase PrintWriter Una vez enviado nos pedirá leer un Ok. Posteriormente enviaremos nuestros apellidos, nombre y correo de la ETSINF. Finalmente recibiremos un Success! y cerraremos la conexión con el método socket.close(), cerrando previamente el PrintWriter y el Scanner. Notas: • Es una buena práctica tener en cuenta las excepciones que se lanzarán. Habrá una HostNotFoundException y una IOException por parte de los sockets y una NumberFormatException al parsear el número. • Nos pedirán tener en cuenta las respuestas del servidor y cerrar la conexión si alguna respuesta no es correcta. Podemos comprobar esto con el método startsWith() • Una vez creado el socket se pasará su inputStream al PrintWriter y su outputStream al Scanner. • Todos los mensajes enviados al server han de estar separados por \n\r a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9173268 Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad. public class Exam1{ public static void main(String[] args){ String host = "zoltar.redes.upv.es"; int port = 8000; try{ //Creamos el socket Socket socket = new Socket(host,port); //Añadimos los flujos de información al PrintWriter y al Scanner PrintWriter pw = new PrintWriter(socket.getOutputStream()); Scanner scanner = new Scanner(socket.getInputStream()); try{ //Obtenemos y parseamos el mensaje del server. int number = Integer.parseInt(scanner.nextLine()); number = number*number; //Obtenemos el cuadrado //Mandamos el cuadrado pw.print(number+"\r\n"); //IMPORTANTE: SEPARADORES \r\n pw.flush(); //Leemos la respuesta String read = scanner.nextLine(); if(read.startsWith("Ok")){ pw.close(); scanner.close(); socket.close(); } //Mandamos la nueva información pw.print("Shin Chan, Cerdo cerdo@etsinf.upv.es\r\n"); //IMPORTANTE: SEPARADORES \r\n pw.flush(); //Obtenemos la respuesta de nuevo read = scanner.nextLine(); //Printeamos y comprobamos que sea un Succeed. System.out.println(read); scanner.close(); pw.close(); } catch(NumberFormatException nfe){System.out.println("No recibe número"); }} catch(UnknownHostException uhe){ System.out.println("No se encuentra el server");} catch(IOException ioe){ System.out.println("IOEXCEPTION"); } } } a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9173268 si lees esto me debes un besito Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad. import java.net.*; import java.io.*; import java.util.*; a64b0469ff35958ef4ab887a898bd50bdfbbe91a-9173268 el podcast para entender que la vida da mas vueltas que la silla de un peluquero Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.