Área de Ingeniería Telemática 1 Universidad de Sevilla Fundamentos de Telemática Tema 16: Comunicaciones en Red.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Advertisements

Dirección IP - Características
Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Curso de Java Java – Redes Rogelio Ferreira Escutia.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
PROTOCOLOS DE PROYECTO CONTROL DE TRAFICO INTELIGENTE Alumno : Luis Carlos Illanes Quiroga.
TEMA1. Servicios de Red e Internet
© 2007 Cisco Systems, Inc. All rights reserved. Traducido en apoyo a la capacitación de Instructores de la Red Proydesa Comunicación por la red Fundamentos.
Programación Interactiva Aplicaciones Cliente-Servidor
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Phone2Wave-Server Manual de Operación.
Trabajo Practico Grupo 1 NFS – TCP - UDP
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Sockets y Threads en JAVA
Sistemas Informáticos Distribuidos
ENTRADA/SALIDA ENTRADA/SALIDA DESDE O HACIA UN PROCESO
PROTOCOLOS Y ESTANDARES DE RED
Trabajar en una pequeña o mediana empresa o ISP. Capítulo 7
Unidad 1. Manejo de ficheros
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
Modularidad Estructura de datos.
Ingeniería en Automática Industrial Software para Aplicaciones Industriales I Ingeniería en Automática Industrial Software para Aplicaciones Industriales.
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
Tema 1. Introducción a la programación (Lenguaje java).
1.2 Sintaxis del lenguaje Java.
Proyecto Fin de Carrera E.T.S. Ingeniería Informática 26 de Septiembre de 2006 DESARROLLO DE UN COMPONENTE TECLADO ALUMNO: Fco. Javier Sánchez Ramos TUTORES:
El Socket Un socket es un extremo de un link de comunicación entre dos programas que corren en una red. El socket esta asociado (amarrado, bound) a ub.
Aspectos básicos de networking: Clase 5
Archivos Contenido: Archivos de Texto Archivos de Acceso Aleatorio
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Christophe Fontano Julien Alagnou Socket.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Unidad I Java y C++ : Similitudes y diferencias
1 Streams en Java Agustín J. González ELO Generalidades Un Stream es simplemente una fuente o destino de bytes. Los streams más comunes son los.
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
1 Programación Interactiva Archivos Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
Tema 14: java.lang Antonio J. Sierra. Índice 1. Introducción. 2. Gestión de cadenas. –String –StringBuffer 3. Clases para los tipos simples. –Number –Envolventes.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Programación Orientada a Objetos
Entrada / Salida. Java adopta de Unix el concepto de stream Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino. Desde.
Streams. / En casi todo programa se necesita traer o enviar información a una fuente externa. / Dicha información puede estar en un archivo en el disco.
El lenguaje de programación Java
Cliente/Servidor ● Normalmente queremos algo más que conectarnos a un servidor ● El servidor nos va a dar un servicio ● Protocolo – Orden y tipo de datos.
AXEL LATORRE GABRIEL VALENZUELA GIAN PAOLO ALMEIDA ROMMEL CHIFLA ISABEL VILLEGAS INTEGRANTES.
Sockets. / Los sockets (zócalos, referido a los enchufes de conexión de cables) son mecanismos de comunicación entre programas a través de una red TCP/IP.
Programando Clientes TCP Postítulo La Clase InetAddress Una dirección IP es la dirección absoluta de un computador cualquiera en toda la internet.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación  2.1 Principios de la aplicaciones de red  2.2 Web y HTTP  2.3 FTP  2.4 Correo Electrónico  SMTP,
En este capitulo se analizo la relación entre cliente y servidor de red habituales, como: HTTP FTP DNS DHCP Correo Electrónico INTRODUCCIÓN.
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
TEMA 3. Programación en red
TALLER DE DESARROLLO WEB FUNDAMENTOS DE INTERNET.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Conceptos básicos sobre Internet
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
2: Capa Aplicación 1 Capa Aplicación: Programación de sockets ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Andres Marín L. Programación sockets en java.
Servicios de Red e Internet
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
Protocolos del modelo TCP/IP
Ing. Elizabeth Guerrero V.
Protocolos de Transporte y Aplicación
1 Introducción a las Comunicaciones en Red. import java.net.InetAddress; import java.net.UnknownHostException; public class PruebaSockets { public static.
Transcripción de la presentación:

Área de Ingeniería Telemática 1 Universidad de Sevilla Fundamentos de Telemática Tema 16: Comunicaciones en Red

Área de Ingeniería Telemática 2 Universidad de Sevilla Fundamentos de Telemática Índice pIntroducción. pSocket. pURL. pDatagramas.

Área de Ingeniería Telemática 3 Universidad de Sevilla Fundamentos de Telemática Introducción pSe puede realizar con cualquier lenguaje pjava.net pLas clases encapsulan el paradigma de “socket” (conectores) creados por BSD (Berkeley Software Distribution) en la Universidad de Berkeley. pUNIX 4.2BSD (Bill Joy, en Sun Microsystems). pLos programas Java están en la capa de aplicación. pPasos: Abrir, leer/escribir, cerrar.

Área de Ingeniería Telemática 4 Universidad de Sevilla Fundamentos de Telemática TCP (Transport Control Protocol) pComunicaciones fiables, establecen una conexión y comunicaciones en ambos sentidos. pEl orden en que se envían y reciben los datos es crítico. pServicio telefónico. pEjemplos: l HTTP (Hypertext Transfer Protocol) l FTP (File Transfer Protocol) l Telnet pClases: URL, URLConnection, Socket y ServerSocket.

Área de Ingeniería Telemática 5 Universidad de Sevilla Fundamentos de Telemática UDP (User Datagram Protocol) pNo está orientado a conexión. No se garantiza la entrega. pServicio postal. pLos paquetes de datos: datagramas. pClases: DatagramPacket, DatagramSocket y MulticastSocket.

Área de Ingeniería Telemática 6 Universidad de Sevilla Fundamentos de Telemática Puertos pDistingue la aplicación dentro de la máquina. pLos datos van acompañados de l la dirección de la computadora (32 bits) l el puerto al que va destinado (16 bits) pRango para los puertos:

Área de Ingeniería Telemática 7 Universidad de Sevilla Fundamentos de Telemática ServidorServidorPuertoPuerto ClienteCliente

Área de Ingeniería Telemática 8 Universidad de Sevilla Fundamentos de Telemática TCP o UDP Aplic.Aplic.Aplic.Aplic.Aplic.Aplic.Aplic.Aplic. puertopuertopuertopuerto Datos#puerto Datos

Área de Ingeniería Telemática 9 Universidad de Sevilla Fundamentos de Telemática Conectores reservados 13/udpdaytime PuertoServicio 23 /tcp telnet 25 /tcp 79 /tcp finger 80 /tcp HTTP 119 /tcp netnews pTCP/IP reserva los primeros 1024 para sus protocolos específicos. 21/tcpftp

Área de Ingeniería Telemática 10 Universidad de Sevilla Fundamentos de Telemática Servicio de nombres de Dominio (DNS) pExiste una jerarquía de nombres asociada a los números que representan las direcciones que se conoce como DNS. pPermite teclear en vez de

Área de Ingeniería Telemática 11 Universidad de Sevilla Fundamentos de Telemática Aplicación (HTTP, ftp, telnet,...) Aplicación Transporte (TCP, UDP,...) Transporte Red (IP,...) Red Enlace (dispositivo driver,...) Enlace

Área de Ingeniería Telemática 12 Universidad de Sevilla Fundamentos de Telemática El paquete java.net (I) Socket Implementa un cliente Socket. ServerSocket Implementa un servidor Socket. SocketImpl Clase abstracta. SocketPermission Acceso a la red vía socket

Área de Ingeniería Telemática 13 Universidad de Sevilla Fundamentos de Telemática El paquete java.net (II) URL Puntero a un recurso en la world wide web URLConnection Clase abstracta. Superclase para comunic. entre aplic y URL. URLClassLoader Carga clases y recursos URLDecoder Convierte el formato MIME en String URLEncoder Convierte el formato String en MIME URLStreamHandler Clase abstracta. HttpURLConnection Un URLConnection con soporte para características http. JarURLConnection Uso de archivos JAR ContentHandler Clase abstracta.

Área de Ingeniería Telemática 14 Universidad de Sevilla Fundamentos de Telemática El paquete java.net (III) MulticastSocket Tx/Rx de paquetes IP multicast. DatagramPacket Clase que representa un datagrama. DatagramSocket Tx/Rx de datagramas en un socket.

Área de Ingeniería Telemática 15 Universidad de Sevilla Fundamentos de Telemática El paquete java.net (y IV) InetAddress Respresenta una dirección de IP. Authenticator Autentificación para una conexión a la red. NetPermission Clase para permisos en la red. PasswordAuthentication Para autentificación

Área de Ingeniería Telemática 16 Universidad de Sevilla Fundamentos de Telemática InetAddress pEncapsula direcciones IP y sus nombres. pNo tiene constructores visibles, pero se proporcionan métodos estáticos. p pstatic InetAddress getLocalHost() l l Devuelve el objeto que representa al nodo local. p pstatic InetAddress getByName(String nomNodo) l l Devuelve el nombre del nodo que se le pasa. l l Puede lanzar UnknownHostException (excepción de nodo desconocido). p pstatic InetAddress[] getAllByName(String nomNod) l l devuelve una matriz que representa todas las direcciones en las que se traduce un nombre dado. l l Puede lanzar UnknownHostException.

Área de Ingeniería Telemática 17 Universidad de Sevilla Fundamentos de Telemática import java.net.InetAddress; class dire{ public static void main(String args[]) { InetAddress direccion; try{ direccion = InetAddress.getLocalHost(); System.out.println(direccion); System.out.println(); direccion = InetAddress.getByName("trajano.us.es"); System.out.println(direccion); System.out.println(); InetAddress SW[] = InetAddress.getAllByName("trajano.us.es"); for(int i = 0; i<SW.length; i++) System.out.println(SW[i]); }catch (Exception e){ System.out.println("Error en ejecución: "+e); } /* [16]-adriano:Mon> java dire adriano/ trajano.us.es/ [17]-adriano:Mon> */

Área de Ingeniería Telemática 18 Universidad de Sevilla Fundamentos de Telemática Métodos no estáticos p pString getHostName() l l Devuelve como cadena el nombre del nodo. p pbyte[] getAddress() l l Devuelve una matriz de bytes de cuatro elementos que representa la dirección en Internet del objeto en el "orden de bytes de la red". p pString toString() l l Devuelve el nombre del nodo y la dirección IP. Ejemplo, "starwave.com/ ". p pboolean equals(InetAddress otroNodo) l l Devuelve true si los objeto tiene la misma dirección.

Área de Ingeniería Telemática 19 Universidad de Sevilla Fundamentos de Telemática Socket pSocket: Comunic. de bajo nivel. pURL y URLConnection: Comunic. de alto nivel. pSobre TCP, cada programa establece una conexión (cliente-servidor) y va ligado a un socket. pLos socket son puntos finales del enlace. pLos procesos los trata como descriptores de ficheros. pEl Cliente conoce: l el nombre la máquina servidora l número de puerto al que está conectado pEl Servidor: l Acepta la conexión

Área de Ingeniería Telemática 20 Universidad de Sevilla Fundamentos de Telemática Modelo de Comunicaciones ServidorCliente ServerSocket(#port)accept()Socket(host,#port) OutputStreamInputStreamOutputStreamInputStream close()close()

Área de Ingeniería Telemática 21 Universidad de Sevilla Fundamentos de Telemática Constructores para el cliente pCuando se crea un objeto Socket, se establece una conexión entre cliente y servidor. p pSocket(String nodo, int puerto) l l Crea un conector que conecta el nodo local con el nodo y puerto especificados. p pSocket(InetAddress dirección, int puerto) l l Crea un conector utilizando un objeto InetAddress ya existente y un puerto. p pEn total son 8 constructores (versión 1.2). p pPuede lanzar UnknownHostException o IOException.

Área de Ingeniería Telemática 22 Universidad de Sevilla Fundamentos de Telemática Información del Socket y flujos p pInetAddress getInetAddress() l l Devuelve la InetAddress asociada con el objeto Socket. p pint getPort() l l Devuelve el puerto remoto al que está conectado este objeto Socket. p pint getLocalPort() l l Devuelve el puerto local al que está conectado este objeto Socket. p pInputStream getInputStream() l l Devuelve el InputStream (flujo de entrada) asociado con este conector. p pOutputStream getOutputStream() l l Devuelve el OutputStream (flujo de salida) asociado con este conector. p pvoid close() l l Cierra el InputStream y el OutputStream.

Área de Ingeniería Telemática 23 Universidad de Sevilla Fundamentos de Telemática Constructores para el Servidor p pServerSocket(int puerto) l l Crea un conector en el servidor en un puerto específico. p pServerSocket(int puerto, int backlog) l l Se configura la longitud máx. de la cola de entrada. p pServerSocket(int port, int backlog, InetAddress dir) l l Ligada a una dirección.

Área de Ingeniería Telemática 24 Universidad de Sevilla Fundamentos de Telemática Creación de flujos de Entrada pEn el cliente se crea un flujo de entrada para recibir las respuestas del servidor (DataInputStream) Socket sock = new Socket(“host”,puerto); DataInputStream in = new DataInputStream(sock.getInputStream()); pDataInputStream tiene métodos como read(), readLine(), readChar(), readInt(), … pEn el servidor también, para recibir a los clientes ServerSocket sock = new ServerSocket(puerto);

Área de Ingeniería Telemática 25 Universidad de Sevilla Fundamentos de Telemática Creación de flujos de Salida pEn el cliente se crea un flujo de salida para enviar información al servidor (DataOutputStream o PrintStream) PrintStream out = new PrintStream(sock.getOutputStream()); DataOutputStream out = new DataInputStream(sock.getOutputStream()); pPrintStream tiene los métodos write y println. pDataOutputStream escribe los datos primarios y writeBytes. pEn el servidor se envía información al cliente PrintStream out = new PrintStream(sock.getOutputStream());

Área de Ingeniería Telemática 26 Universidad de Sevilla Fundamentos de Telemática import java.net.*; import java.io.*; class Whois{ public static void main(String args[]) throws Exception{ int c; Socket s = new Socket("intermic.net",43); InputStream in = s.getInputStream(); OutputStream out = s.getOutputStream(); String str = (args.length==0 ? ”starwave.com”: args[0]+"\n”); byte buf[] = new byte[str.length()]; str.getBytes(0,str.length(), buf, 0 ); out.write(buf); while((c = in.read()) != -1) { System.out.println((char)c); } s.close(); in.close(); out.close(); }

Área de Ingeniería Telemática 27 Universidad de Sevilla Fundamentos de Telemática import java.io.*; import java.net.*; public class EchoClient { public static void main(String[] args) throws IOException { Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null; try { echoSocket = new Socket("adriano", 7);//crea un socket // dos siguientes lineas son para leer/escribir en socket out = new PrintWriter(echoSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream())); } catch (UnknownHostException e) { System.err.println("No conoce el host: adriano."); } catch (IOException e) { System.err.println("Error E/S en la conexion: adriano."); } Continúa...

Área de Ingeniería Telemática 28 Universidad de Sevilla Fundamentos de Telemática if(echoSocket!=null&& in!=null && out!=null){ BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String userInput; while ((userInput = stdIn.readLine()) != null) { out.println(userInput); System.out.println("echo: " + in.readLine()); } out.close(); in.close(); stdIn.close(); echoSocket.close(); } Continuación …

Área de Ingeniería Telemática 29 Universidad de Sevilla Fundamentos de Telemática pReferencia (dirección) de un recurso de Internet. pProtocolos: HTTP, FTP, Gopher, File y News. pNombre del recurso: URL (Uniform Resource Locator) http ://java.sun.com Identificador de protocolo Nombre del recurso Nombre host Nombre de la máquina en la que está el recurso. Nombre fichero Nombre del camino al fichero en la máquina. Número de Puerto Puerto al que se conecta (opcional). Referencia Referencia al nombre (opcional).

Área de Ingeniería Telemática 30 Universidad de Sevilla Fundamentos de Telemática Constructores (I) pURL absoluto, contiene toda la información para alcanzar el recurso l URL(String cad), ejemplo URL gamelan = new URL(" pURL relativo, los ficheros HTML dan de forma relacionada con el fichero en el que están. l URL(URL base,String relativo), ejemplo URL game = new URL(" URL gamelan = new URL(game,”Gamelan.html");

Área de Ingeniería Telemática 31 Universidad de Sevilla Fundamentos de Telemática Constructores (y II) p pURL(String proto, String host, int port, String file) p pURL(String proto, String host, String file) p pURL gam = new URL ("http", ” 80, "/pages/Gamelan. html"); pCrea un objeto URL para el siguiente URL: html pMalformedURLException l Si el protocolo es desconocido o los argumentos del constructor son incorrectos. pLos objetos URL se escriben una vez (no se pueden cambiar).

Área de Ingeniería Telemática 32 Universidad de Sevilla Fundamentos de Telemática Métodos p pString getProtocol() + + Devuelve el componente identificador de protocolo del URL p pString getHost() + + Devuelve el nombre de host del URL p pint getPort() + + Devuelve el número de puerto del componente URL. Devuelve un entero que es el número de puerto. Si el puerto no es asignado explicitamente devuelve -1. p pString getFile() + + Devuelve el nombre del fichero del componente del URL. p pString toExternalForm() + + Devuelve una cadena que representa un URL.

Área de Ingeniería Telemática 33 Universidad de Sevilla Fundamentos de Telemática Ejemplo import java.net.*; class Patric{ public static void main(String args[]) throws MalformedURLException{ URL hp = new URL (" System.out.println("Protocolo: "+ hp.getProtocol()); System.out.println("Puerto: "+ hp.getPort()); System.out.println("Nodo: "+ hp.getHost()); System.out.println("Archivo: "+ hp.getFile()); System.out.println("Ext: "+ hp.toExternalForm()); } /* Protocolo: http Puerto: -1 Nodo: Archivo: /people/naughton/ Ext: */

Área de Ingeniería Telemática 34 Universidad de Sevilla Fundamentos de Telemática Conexión a un URL pURLConnection openConnection() import java.net.*; import java.io.*; class URL0{ public static void main(String args[]) { try{ URL yahoo = new URL (" yahoo.openConnection(); System.out.println("OK "); }catch(MalformedURLException e){ System.out.println("Excep: " + e); }catch(IOException e){ System.out.println("Excep: " + e); }

Área de Ingeniería Telemática 35 Universidad de Sevilla Fundamentos de Telemática Leyendo de un URL pInputStream openStream() import java.net.*; import java.io.*; class URL1{ public static void main(String args[]) throws Exception{ URL yahoo = new URL (" BufferedReader in = new BufferedReader( new InputStreamReader(yahoo.openStream())); String inputLine; while((inputLine = in.readLine())!= null) System.out.println(inputLine); in.close(); }

Área de Ingeniería Telemática 36 Universidad de Sevilla Fundamentos de Telemática Leyendo de un URLConnection pInputStream getInputStream() import java.net.*; import java.io.*; class URL2{ public static void main(String args[]) throws Exception{ URL yahoo = new URL (" URLConnection yc = yahoo.openConnection(); BufferedReader in = new BufferedReader( new InputStreamReader(yc.getInputStream())); String inputLine; while((inputLine = in.readLine())!= null) System.out.println(inputLine); in.close(); }

Área de Ingeniería Telemática 37 Universidad de Sevilla Fundamentos de Telemática Datagramas pLos Datagramas se implementan sobre el protocolo UDP, con dos clases: pDatagramPacket, contiene los datos pDatagramSocket, es el mecanismo para enviar o recibir los DatagramPacket.

Área de Ingeniería Telemática 38 Universidad de Sevilla Fundamentos de Telemática Métodos pInetAddress getAddress() l Devuelve la dir. de destino (para envíos) pint getPort() l Devuelve el número de puerto. pbyte[] getData() l Devuelve el contenido del datagrama pint getLength() l Devuelve la longitud de los datos válidos