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