Download Grupo 2
Document related concepts
no text concepts found
Transcript
Material Apoyo Práctica 2 Programación de la interfaz de acceso a los servicios de transporte de Internet en JAVA Primeros pasos • Restaurar imagen y desactivar Firewall. • Descargar de Internet los fuentes java. – Carpeta Prácticas de Laboratorio à Segunda Sesión. • Extraer en la carpeta c:\RC los ficheros contenidos en el archivo comprimido. Compilar y ejecutar • Abrir ventana Símbolo de Sistema. • Cambiar a la carpeta RC. – cd c:\RC. • Con Notepad++ abrir fichero archivosimple.java – Programa que muestra texto en pantalla y solicita entrada de texto por teclado. • javac1 compila fichero *.java. – javac archivosimple.java • java1 ejecuta fichero *.class. – java UnaClaseSimple 1 Si no están en el ruta del sistema habría que indicarlo. Interfaz de programación • Paquete java.net. • Interfaz distinta dependiendo si se quiere transferencia fiable o no. – Al crear el T_SAP se decide el tipo de transferencia que se desea. – La transferencia a través del T_SAP es distinta: • No fiableà se envían/reciben T-IDU (A-PDU+ T-ICI). – T-PDU = T-PCI + T-UD (T-UD=T-SDU=A-PDU) • Fiable à el T_SAP se trata como un buffer (stream) del que se puede leer y escribir. – Se ofrece un servicio de entrega de bytes/caracteres. » Una T-PDU = T-PCI + T-UD (En general la T-UD es un trozo de la T-SDU, es decir, A-PDU) » Se usa un tamaño máximo en bytes de T-UD en cada T-PDU. Interfaz SNOC1-UDP • Mismos pasos en servidor y cliente. – Servidor se tiene que ejecutar primero y recibir primero. • A través de T-SAP sólo se envían y reciben T-IDUs • Pasos: – Crear el T-SAP: • DatagramSocket, se puede indicar el puerto a usar. – Crear la T-IDU: • DatagramPacket, necesario A-PDU, sizeof (A-PDU), IP, Puerto – Para enviar una T-IDU: • Método send. (IP y Puerto del destino) – Para recibir una T-IDU • Método receive. (IP y Puerto del origen) – Liberar el T-SAP: • Método close. (Cuando yo no se vaya a usar más) • Existen otros métodos tales como getLocalport, getLocalAddress. 1 Servicio No Orientado a la Conexión (Servicio de transferencia NO fiable) Interfaz SOC1 -TCP • Distintos pasos en servidor y cliente. – Servidor se tiene que ejecutar primero. • A través de T-SAP sólo se envían y reciben bytes/caracteres • Pasos Servidor: – Crear el T-SAP: • ServerSocket, se debe indicar el puerto a usar. – Aceptar peticiones conexión clientes. • Método accept. Devuelve el T-SAP creado para atender a un determinado cliente. – Enviar y Recibir hilera de bytes. • Primero hay que vincular y crear buffer de entrada y salida a la clase apropiada para facilitar su manejo. – Liberar el T-SAP. • Método close. 1 Servicio Orientado a la Conexión (Servicio de transferencia fiable) • Pasos Cliente: Interfaz SOC-TCP – Crear el T-SAP y establecer conexión: • Socket, se debe indicar la IP y puerto del servidor. – Enviar y Recibir una hilera de bytes. • Primero hay que vincular buffer de entrada y salida a la clase apropiada para facilitar su manejo. – Para liberar el T-SAP. • Método close. • Enviar bytes: – 1º Vincular y crear buffer salida del T-SAP a la clase DataOutputStream – Para enviar una hilera de bytes. (En general la APDU) • Método writeBytes. • Recibir bytes: – 1º Vincular y crear buffer entrada del T-SAP a la clase InputStreamReader y esta a la clase BufferedReader – Para recibir bytes • Método read (un solo carácter), readline (una línea). Programa (¡¡Protocolo!!) ejemplo • Conversor de mayúsculas: – – – – Tipo de mensaje: Texto Sintaxis: Hilera de caracteres finalizada en ’\n’1 Semántica: Ninguna. Reglas de procedimiento • En Cliente: – 1. Envía mensaje texto al servidor. – 2. Espera recibir mensaje texto. • En Servidor: – 1. Espera recibir Texto. – 2. Convierte a mayúscula Texto – 3. Envía Texto. 1 En SNOC no es necesario ‘\n’ Probar SNOC (mismo SF) • Con Notepad++ abrir ficheros T2-clienteudp.java y T2-servidorudp.java. • Abrir dos ventana Símbolo de Sistema. (NO CERRAR) • Cambiar en ambas a la carpeta RC. – cd c:\RC. • Compilar ambos ficheros. (javac) • En una ventana ejecutar servidor y en la otra cliente. (java) Probar SNOC (distinto SF) • Con Notepad++ editar ficheros T2-clienteudp.java. • Modificar dirección IP a: – G1.31: “10.1.15.10” – G1.33: “10.1.15.105” • En una de las ventanas compilar y ejecutar el cliente. Probar SOC (mismo SF) • Con Notepad++ editar ficheros T2-clientetcp.java y T2-servidortcp.java. • Compilar tanto ambos ficheros. (javac) • En una ventana ejecutar servidor y el la otra cliente. (java) Probar SOC (distinto SF) • Con Notepad++ editar fichero T2-cliente.java. • Modificar dirección IP a: – G1.31: “10.1.15.10” – G1.33: “10.1.15.105” • En una de las ventanas compilar y ejecutar el cliente. ¿Hacemos un cliente HTTP? • ¿Qué programa de ejemplo tengo que usar como base? • ¿Qué tipo de PDU tengo que enviar? • ¿Qué tipo de PDU tengo que recibir? • URL:www.dte.us.es/personal/vmedina/ • Manos a la obra. Resumen • Determinar el tipo de servicio que se desea – Fiable à TCP. – No Fiable à UDP. • Realizar los pasos según corresponda para implementar el cliente y/o servidor. – Crear T-SAP (en TCP se establece conexión). – Usar T-SAP (envío/recepción de T-IDU- UDP o envío/recepción de bytes – TCP). – Cerrar T-SAP (en TCP se libera la conexión). • Lo que se recibe y se envía a través del T-SAP son los tipos de A-PDUs que tienen la sintaxis y semántica definida en el protocolo. – El envío y recepción se hace siguiendo las reglas de procedimiento definidas en el protocolo. Material Adicional • Transparencias tema 2. • Documentación paquete java.net – http://docs.oracle.com/javase/6/docs/api/java/net/ package-summary.html • Documentación java.io – http://docs.oracle.com/javase/1.4.2/docs/api/java/i o/package-summary.html • Documentación clase String (paquete java.lang). – http://docs.oracle.com/javase/1.4.2/docs/api/java/l ang/String.html