Java Networking. Stream sockets (TCP) Departamento de Matemáticas y Computación. Grado en Ingeniería

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Java Networking. Stream sockets (TCP) Departamento de Matemáticas y Computación. Grado en Ingeniería"

Transcripción

1 Java Networking Stream sockets (TCP) Java Networkingpor Francisco J. García Izquierdo. Universidad de la Rioja. Departamento de Matemáticas y Computación. se encuentra bajo una Licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported. Departamento de Matemáticas y Computación Grado en Ingeniería Informática Sistemas distribuidos

2 Objetivos Estudio de los fundamentos de las comunicaciones usando TCP en Java Construcción de clientes y servidores TCP Repaso de algunos conceptos web: URL, MIME, Repaso de los fundamentos del protocolo HTTP Planteamiento de la conveniencia de usar threads en los servidores Grado en Ingeniería Informática Sistemas Distribuidos 2 Francisco J. García Izquierdo

3 Bibliografía Java Network Programming, 2nd Edition. Elliotte Rusty Harold.O Reilly (2000). ISBN: Advanced Java Networking (2nd Ed.). Dick Steflik, Prashant Sridharan, Richard Steflik. Prentice Hall PTR (2000). ISBN: Grado en Ingeniería Informática Sistemas Distribuidos 3 Francisco J. García Izquierdo

4 Agenda Stream sockets Aplicaciones Cliente Fundamentos de World Wide Web Implementación de Servidores Servidores Multithreaded Grado en Ingeniería Informática Sistemas Distribuidos 4 Francisco J. García Izquierdo

5 Stream Sockets (TCP) En Internet los datos circulan en paquetes de tamaño fijo llamados datagramas Por tanto es necesario particionar los datos en datagramas, enviarlos individualmente y reensamblarlos en el destino Sin embargo puede que algunos lleguen con errores, lleguen desordenados o incluso que no lleguen Controlar todos estos aspectos requiere un SW complejo Sin embargo los Sockets TCP se encargan de todo La implementación Java de estos sockets delega en servicios del sistema operativo Grado en Ingeniería Informática Sistemas Distribuidos 5 Francisco J. García Izquierdo

6 Stream Sockets (TCP) Permiten trabajar con la red como si fuera un stream más. Inicialmente fueron una extensión al Berkeley Unix. Actualmente se encuentran implementados en las principales plataformas. Garantizan una comunicación sin pérdida y recepción ordenada de paquetes. A la hora de utilizar sockets hay dos papeles: el del servidor y el del cliente (aunque hay cliente en ambos extremos). El S. servidor acepta conexiones El S. cliente establece conexiones Grado en Ingeniería Informática Sistemas Distribuidos 6 Francisco J. García Izquierdo

7 Stream Sockets Las operaciones básicas de un socket cliente son: Conectarse con el servidor en el host remoto. Eligiendo un puerto del servidor En el cliente se escoge uno que esté libre Intercambiar información (full-duplex). Proporciona un input y un outputstream Cerrar la conexión. Las operaciones de un socket servidor son: Asociarse con un puerto libre del host. Esperar conexiones de sockets clientes. Proveer de un socket cliente para el intercambio de información. Grado en Ingeniería Informática Sistemas Distribuidos 7 Francisco J. García Izquierdo

8 Agenda Stream sockets Aplicaciones Cliente Fundamentos de World Wide Web Implementación de Servidores Servidores Multithreaded Grado en Ingeniería Informática Sistemas Distribuidos 8 Francisco J. García Izquierdo

9 Sockets Cliente - Construcción Constructores: public Socket(String host, int port) throws UnknownHostException, IOException; public Socket(InetAddress address, int port) throws IOException; Ejemplo: try { Socket socket = new Socket( 80); // Equivalente, pero más largo InetAddress adress = InetAddress.getHostByName( ); socket = new Socket(address, 80); } catch (Exception e) { } System.out.println(e); Grado en Ingeniería Informática Sistemas Distribuidos 9 Francisco J. García Izquierdo

10 Sockets Cliente Métodos de acceso informativos public InetAddress getinetaddress() public int getport() public int getlocalport() Ejemplo try { // Puerto del servidor Socket socket = new Socket( 80); System.out.println(socket.getInetAddress()); System.out.println(socket.getPort()); System.out.println(socket.getLocalPort()); } catch (IOException e) { } System.out.println(e); Grado en Ingeniería Informática Sistemas Distribuidos 10 Francisco J. García Izquierdo

11 Sockets Cliente - streams getinputstream devuelve un InputStream a través del cual se podrá leer todo lo que envíe el servidor public InputStream getinputstream() throws IOException La lectura es bloqueante. Ejemplo try { // Protocolo daytime Socket socket = new Socket(hostname, 13); dis = new DataInputStream(socket.getInputStream()); System.out.println(dis.readLine()); socket.close(); } catch (IOException e) { System.out.println(e); } Grado en Ingeniería Informática Sistemas Distribuidos 11 Francisco J. García Izquierdo

12 Sockets Cliente - streams getoutputstream devuelve un OutputStream a través del cual enviar información al servidor public OutputStream getoutputstream () throws IOException try { // Protocolo echo Socket socket = new Socket(hostname, 7); in = new DataInputStream(socket.getInputStream()); out = new PrintStream(socket.getOutputStream()); teclado = new DataInputStream(System.in); while (true) { String line = teclado.readline(); out.println(line); // Convendría hacer out.flush(); System.out.println(in.readLine()); } socket.close(); } catch (IOException e) { System.out.println(e); } Grado en Ingeniería Informática Sistemas Distribuidos 12 Francisco J. García Izquierdo

13 Correspondencia de streams InputStream 1 OutputStream 1 Aplicación 2 Socket Aplicación 2 InputStream 2 OutputStream 2 Grado en Ingeniería Informática Sistemas Distribuidos 13 Francisco J. García Izquierdo

14 Sockets Cliente - cierre Libera los recursos utilizados por el socket public void close() Después de usar close todavía se pueden consultar los datos del socket (puerto local, dirección, ). Sin embargo cualquier intento de leer o escribir en alguno de los stream producirá una excepción (IOException). El cierre es bidireccional, cerrándose en los dos extremos del socket El cierre de alguno de los streams del socket desencadena el cierre del socket. Grado en Ingeniería Informática Sistemas Distribuidos 14 Francisco J. García Izquierdo

15 Sockets Cliente cierre parcial El cierre anterior es completo A veces interesa cerrar sólo el canal de escritura o de lectura No se cierra el socket. Sólo parte de él: public void shutdownoutput() public void shutdowninput() Después de usarlos cualquier intento de escritura produce un error En el otro extremo los streams quedan marcados con EOF (cualquier intento de lectura devuelve -1) Grado en Ingeniería Informática Sistemas Distribuidos 15 Francisco J. García Izquierdo

16 Sockets Cliente - configuración Método settcpnodelay void settcpnodelay(boolean on) boolean gettcpnodelay() Indica que se desean enviar los paquetes tan rápido como sea posible. Se anula el buffering de los paquetes pequeños. Grado en Ingeniería Informática Sistemas Distribuidos 16 Francisco J. García Izquierdo

17 Sockets Cliente - configuración Método setsolinger void setsolinger(boolean on, int seconds) int getsolinger() Indica que se debe hacer si al cerrar el socket hay paquetes pendientes de envío Por defecto el SO subyacente se encarga del envío Se puede establecer cuanto tiempo esperar para intentar enviar los paquetes. Una vez transcurrido, los paquetes se descartan. Si se indica false se espera indefinidamente. Si se especifica true,0, se cierra inmediatamente (hard close). Si se especifica true,( 0), depende de la plataforma. Grado en Ingeniería Informática Sistemas Distribuidos 17 Francisco J. García Izquierdo

18 Sockets Cliente - configuración Método setsotimeout public void setsotimeout(int ms) public int getsotimeout() Normalmente el read espera indefinidamente hasta que llegue algún dato. Con este método se puede establecer el tiempo máximo de espera del read. Grado en Ingeniería Informática Sistemas Distribuidos 18 Francisco J. García Izquierdo

19 Sockets Cliente - configuración Método setkeepalive public void setkeepalive(boolean ka) public boolean getkeepalive() Si no se hace nada, un cliente inactivo puede estar pendiente eternamente al leer o escribir de un servidor fuera de servicio Con este método un cliente (inactivo) envía un paquete para saber si el servidor ha caido. Si no recibe respuesta, el cliente cerrará el socket. Grado en Ingeniería Informática Sistemas Distribuidos 19 Francisco J. García Izquierdo

20 Agenda Stream sockets Aplicaciones Cliente Fundamentos de World Wide Web Implementación de Servidores Servidores Multithreaded Grado en Ingeniería Informática Sistemas Distribuidos 20 Francisco J. García Izquierdo

21 WWW La WWW utiliza el protocolo HTTP en la comunicación entre browser y servidor El HTTP está estrechamente relacionado con otros estándares: URL, MIME y HTML Grado en Ingeniería Informática Sistemas Distribuidos 21 Francisco J. García Izquierdo

22 URL Una URL (Uniform Resource Locator) es la forma de obtener un determinado recurso en Internet Su sintaxis es: protocolo://host[:port]/path/recurso#sección El protocolo indica el tipo de servidor que transmite el recurso El puerto por defecto (http, 80; ftp, 21; Y cómo obtener el recurso Los más habituales son http, ftp, file, etc Ej FTP: ftp://<usr>:<pwd>@<host> Grado en Ingeniería Informática Sistemas Distribuidos 22 Francisco J. García Izquierdo

23 URL El host puede indicarse mediante dirección IP o mediante nombre simbólico (DNS) El puerto identifica al servidor dentro del host El path indica el directorio donde está el recurso (relativo al directorio raíz del servidor) El nombre del recurso es opcional. Si éste no se indica el servidor mandará el recurso por defecto (habitualmente index.html o Wellcome.html) Grado en Ingeniería Informática Sistemas Distribuidos 23 Francisco J. García Izquierdo

24 URL La sección permite apuntar a una parte concreta dentro del recurso Ejemplos ftp://public.ftp/lenguajes/java.doc Grado en Ingeniería Informática Sistemas Distribuidos 24 Francisco J. García Izquierdo

25 URL relativas Un documento puede hacer referencia a otro indicando su URL Cuando en la URL de una referencia faltan elementos éstos se toman de la URL de la pagina contenedora A dicho tipo de URL incompletas se las denomina URL relativas Supongamos que en la página se encuentran las siguientes referencias: info.html /info.html datos/faq.html /datos/faq.html Grado en Ingeniería Informática Sistemas Distribuidos 25 Francisco J. García Izquierdo

26 HTTP El protocolo HTTP (Hypertext Transfer Protocol) es el estándar para la comunicación entre browsers y servidores web. HTTP utiliza TCP/IP El cliente envía un mensaje de petición al servidor y espera síncronamente la recepción de otro mensaje de respuesta. No tiene estado HTTP especifica cómo se establece la conexión, se solicita el recurso, se transmite y se cierra la conexión Los mensajes de petición corresponden con diferentes operaciones: GET: acceso a recursos POST: envío de datos (formularios, u otros recursos) PUT: para subir ficheros (aunque no se usa para eso) DELETE: borra recursos; no usado HEAD: como GET, pero no desencadena la descarga Grado en Ingeniería Informática Sistemas Distribuidos 26 Francisco J. García Izquierdo

27 HTTP-URL Comienza por Luego se especifica el host y... Separado por :, el puerto (por defecto el 80) Luego el recurso al que se quiere acceder Opcionalmente el QueryString, después de? Lista de parámetros con sus valores parametro1=valor1&parametro2=valor2... Codificado (ver java.net.urlencoder) Ej.: Grado en Ingeniería Informática Sistemas Distribuidos 27 Francisco J. García Izquierdo

28 HTTP 1. Conexión El cliente establece una conexión con el puerto del servidor. Por defecto es el Solicitud del recurso El cliente envía un mensaje indicando el recurso deseado GET /index.html HTTP/1.0\r\n\r\n GET /app1/unacosa?acc=89 HTTP/1.0\r\n\r\n Si sólo se indica el / se transmitirá el recurso por defecto Se puede pedir GET, POST, HEAD o PUT Si hay query string: si la petición es GET, se añade al final del recurso (separada por una?) Si es POST, va en el cuerpo de la petición Grado en Ingeniería Informática Sistemas Distribuidos 28 Francisco J. García Izquierdo

29 HTTP 3. Respuesta El servidor devuelve un mensaje que incluye el recurso solicitado O informa de alguna situación de error 4. Cierre El servidor cierra la conexión HTTP es un protocolo sin estado. Si se desea otro recurso habrá que establecer otra conexión Grado en Ingeniería Informática Sistemas Distribuidos 29 Francisco J. García Izquierdo

30 Estructura de los mensajes HTTP Bloque de cabeceras y de cuerpo Separados por una línea en blanco La petición puede omitir el cuerpo (en POST, PUT no se omite) Grado en Ingeniería Informática Sistemas Distribuidos 30 Francisco J. García Izquierdo

31 Estructura de los mensajes HTTP (II) La respuesta Aquí irá el HTML, o la imagen, o Cabeceras: Generales: se aplican a la comunicación en general (User-Agent, Connection ) De petición: específicas de la petición (Host, If-Modified-Since, Cookie ) De respuesta: específicas de la respuesta (Server, Location, Set-Cookie ) De entidad: se refieren a lo que hay incluido en el cuerpo del mensaje (Content- Type, Content-Length, Last-Modified ) Grado en Ingeniería Informática Sistemas Distribuidos 31 Francisco J. García Izquierdo

32 HTTP Ejercicio Veámoslo en acción Ejecutar telnet set localecho open 80 Teclear GET / HTTP/1.0\r\n\r\n Prueba de POST Grado en Ingeniería Informática Sistemas Distribuidos 32 Francisco J. García Izquierdo

33 Inspección de mensajes Es conveniente, y a veces necesario, instalarse un sniffer para ver los mensajes intercambiados Wireshark es una opción, pero es muy general (proporciona demasiada funcionalidad) Una buena opción para HTTP es Fiddler Más limitado: HttpFox (un complemento de Firefox) Grado en Ingeniería Informática Sistemas Distribuidos 33 Francisco J. García Izquierdo

34 HTTP - GET Línea de petición: GET /index.html HTTP/1.1 Pueden pedirse recursos estáticos o dinámicos, respuesta de algún proceso que puede recibir parámetros Si hay query string (parámetros de la petición): Con GET, se añade al final del recurso (separada por una?) GET /app1/unacosa?acc=89 HTTP/1.0 Cada parámetro es un par nombre/valor separados por un = Si hay varios parámetros se separan con un & Codificación Los caracteres no alfabéticos se codifican con un carácter % seguido del ASCII del carácter en hexadecimal (ojo con el charset usado). Los espacios se sustituirán por un +. Los caracteres /, #, =, & y? se codificarán si no cumplen el papel de separadores en la URL. Ejemplo: Pepe Pérez Pepe+P%E9rez (en ISO ) Pepe Pérez Pepe+P%C3%A9rez (en UTF-8) Grado en Ingeniería Informática Sistemas Distribuidos 34 Francisco J. García Izquierdo

35 HTTP - GET GET / HTTP/1.1 Host: User-Agent: Mozilla/5.0 (Windows NT... Accept: text/html,application/xhtml+xml,application/xml Accept-Language: es-es,es,en-us,en Accept-Encoding: gzip, deflate Accept-Charset: ISO ,utf-8;q=0.7 Connection: GET /PFC-App/pub/ser.BuscarPFCs?titulo=&director=Izq keep-alive HTTP/1.1 Cache-Control: max-age=0 Host: User-Agent: Mozilla/5.0 (Windows NT... Accept: text/html,application/xhtml+xml,application/xml Accept-Language: es-es,es,en-us,en Accept-Encoding: gzip, deflate Accept-Charset: ISO ,utf-8;q=0.7 Connection: keep-alive Cache-Control: max-age=0 Referer: Cookie: JSESSIONID=25A0D8A18FD28D97F7B12F6DE7FF88; yst.yeipee=0 Grado en Ingeniería Informática Sistemas Distribuidos 35 Francisco J. García Izquierdo

36 HTTP - POST Se suele usar en formularios (no se puede en enlaces) Para enviar al servidor grandes cantidades de datos Para enviar al servidor datos de forma más segura No muestra los parámetros de la petición en la URL Línea de petición: POST /proceso HTTP/1.1 POST /cgi-bin/abweb/x6112/id /g0 HTTP/1.1 Suelen enlazar con procesos que puede recibir parámetros La query string se envía en el cuerpo del mensaje Mismas reglas que con GET (SIN separación por una?) Es conveniente informar al servidor del contenido enviado (Content-Type) Normalmente application/x-www-form-urlencoded. Es la codificación por defecto en <form > HTML Si se está enviando otra cosa, (ej: text/xml en servicios web) Es conveniente informar al servidor del tamaño del contenido enviado (Content-Length) Grado en Ingeniería Informática Sistemas Distribuidos 36 Francisco J. García Izquierdo

37 HTTP - POST POST /cgi-bin/abweb/x6112/id /g0 HTTP/1.1 Host: catalogo.unirioja.es User-Agent: Mozilla/5.0 (Windows NT... Accept: text/html,application/xhtml+xml,application/xml Accept-Language: es-es,es,en-us,en Accept-Encoding: gzip, deflate Accept-Charset: ISO ,utf-8;q=0.7 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 67 Q4= servlet+o%27reilly&q5=hunter&q6=&q7=&q8=&acc=asiok&asiok=buscar&us er=&pass= Grado en Ingeniería Informática Sistemas Distribuidos 37 Francisco J. García Izquierdo

38 HTTP La respuesta La respuesta tiene la siguiente estructura: HTTP/1.1 seguido del estatus de la respuesta (OK o error) 2xx petición recibida, entendida y aceptada 200 OK; 201 Created; 3xx redirección: el navegador debe ir a otra página 301 Moved Permanently; 304 Not Modified; 4xx error del cliente 401 Unauthorized; 404 Not Found; 5xx error del servidor 500 Internal Server Error; 501 Not Implemented; Otras cabeceras: Información del servidor (tipo, ), MIME del documento, longitud de la respuesta, información de sesión Grado en Ingeniería Informática Sistemas Distribuidos 38 Francisco J. García Izquierdo

39 HTTP La respuesta HTTP/ OK Date: Mon, 12 Sep :59:45 GMT Server: Apache/2.2.3 (CentOS)... Cache-Control: max-age=21600 Expires: Mon, 12 Sep :59:45 GMT Content-Type: text/html Keep-Alive: timeout=15, max=99 Connection: Keep-Alive Content-Length: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html lang="es"> <head> <title>universidad de La Rioja</title> <meta http-equiv="content-type" content="text/html; charset=iso ">... Grado en Ingeniería Informática Sistemas Distribuidos 39 Francisco J. García Izquierdo

40 HTTP La respuesta HTTP/ Not Modified Date: Mon, 12 Sep :55:50 GMT Server: Apache/2.2.3 (CentOS... Connection: Keep-Alive Keep-Alive: timeout=15, max=99 ETag: "7d265-a69-a693cb80" Grado en Ingeniería Informática Sistemas Distribuidos 40 Francisco J. García Izquierdo

41 HTTP La respuesta HTTP/ Not Found Date: Mon, 12 Sep :57:45 GMT Server: Apache/2.2.3 (CentOS... Accept-Ranges: bytes Content-Type: text/html Content-Encoding: gzip Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked a??????? 132c?]ms?8??<???h?<IUl?5?c?{??L<;:U????HHF?$?????}??E?????e????~y??'? ^ :????%?pw?????xu???????]?]?/???w???????wy3@?{)???????????????e?{!c?l2?> v?????????b!q?wdfc$i??x?????~??% C<?p???9@>?T??????H0Lq(??mnj2????J... Grado en Ingeniería Informática Sistemas Distribuidos 41 Francisco J. García Izquierdo

42 Cabeceras destacables Content-Length (entity) Tamaño del cuerpo del mensaje Content-Type (entity) Tipo de contenido del cuerpo del mensaje Algún tipo MIME (Multipurpose Internet Mail Extensions) Además del tipo MIME puede especificar el conjunto de caracteres: Content-Type: text/html; Charset=ISO Grado en Ingeniería Informática Sistemas Distribuidos 42 Francisco J. García Izquierdo

43 MIME Un nombre MIME se compone de una pareja tipo/subtipo Actualmente hay más de 100 parejas definidas (ver Un cliente no tiene por qué saber manejar todos MIME sirve que éste identifique a los que sabe manejar Cuando recibe un tipo que no conoce lo habitual es que lo descarte o bien se lo pase a otra aplicación. Las más habituales son: text/html, text/plain, text/xml image/jpeg, image/gif, application/zip, application/msword, video/mpeg, video/quicktime,... Grado en Ingeniería Informática Sistemas Distribuidos 43 Francisco J. García Izquierdo

44 Cabeceras destacables Date (general) Fecha en la que el servidor devuelve la respuesta No tienen que ver con la fecha del recurso (ver Last- Modified). Referer (petición) URL de la página desde donde se hace una petición User-Agent (petición) Tipo de cliente que usa el usuario Ejemplos: Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/ Firefox/6.0.2 Mozilla/5.0 (compatible; MSIE 9.0 Mozilla/5.0 (compatible; Googlebot/2.1 Grado en Ingeniería Informática Sistemas Distribuidos 44 Francisco J. García Izquierdo

45 Control de la caché Last-Modified Fecha en la que el recurso accedido fue modificado por última vez en el servidor Lo envía el servidor (basado en la fecha del recurso; el API de servlets permite controlar de forma sencilla este valor) Last-Modified: Tue, 15 Nov :45:26 GMT Se usa con If-Modified-Since Si el navegador la incluye, el servidor comprueba si el recurso se ha modificado después de la fecha proporcionada (recibida en Last-Modified) If-Modified-Since: Mon, 13 Jun :39:55 GMT Si no hay una versión posterior del recurso, el servidor devuelve la respuesta 304 Not Modified. Grado en Ingeniería Informática Sistemas Distribuidos 45 Francisco J. García Izquierdo

46 Redireccionamiento Relativamente frecuente en aplicaciones web Cuando la lógica de la aplicación determina que la petición del usuario debe ser otra diferente de la solicitada: Varias versiones de una página (ej varios países, Google) Introducción de datos incompleta, que devuelven al inicio En HTTP las redirecciones se indican mediante una respuesta de código 301 Moved Permanently y una cabecera que contiene la URL destino. Location (respuesta) Usada en redireccionamiento (respuesta 3xx) Valor: una URL donde el navegador debe dirigirse Location: /inicio.php Grado en Ingeniería Informática Sistemas Distribuidos 46 Francisco J. García Izquierdo

47 Soporte IPv6 Incluido desde J2SE 1.5 en Solaris, Linux y Windows Si el S.O. subyacente soporta IPv6, no hay que hacer nada para usar IPv6. Socket socket = new Socket("2002:450:9:10::71", 80); socket = new Socket("::1", 13); //::1 = localhost No es necesario ni siquiera recompilar aplicaciones ya existentes para que trabajen con IPv6 Grado en Ingeniería Informática Sistemas Distribuidos 47 Francisco J. García Izquierdo

48 Agenda Stream sockets Aplicaciones Cliente Fundamentos de World Wide Web Implementación de Servidores Servidores Multithreaded Grado en Ingeniería Informática Sistemas Distribuidos 48 Francisco J. García Izquierdo

49 Sockets en Servidor Los clientes necesitan de un servidor con el que intercambiar información Java también permite implementar servidores Pero la clase Socket no es suficiente: requiere un host con el que comunicarse Sin embargo un servidor no sabe quien va a conectar con él ni cuando La clase ServerSocket permite a un servidor esperar hasta que otro host se comunique con él Grado en Ingeniería Informática Sistemas Distribuidos 49 Francisco J. García Izquierdo

50 Sockets en Servidor Los server sockets no inician conexiones, se limitan a esperar conexiones de clientes. El ciclo de vida habitual de un servidor es: Crear un ServerSocket asociándolo a un puerto Esperar en el método accept la llegada de conexión. En ese momento el ServerSocket produce un socket normal para el intercambio de información. El cliente y el servidor intercambian datos La conexión es cerrada por el cliente o por el servidor (o por ambos). El servidor debería volver al segundo paso. Grado en Ingeniería Informática Sistemas Distribuidos 50 Francisco J. García Izquierdo

51 Construcción Constructor: public ServerSocket(int port) throws IOException, BindException; Crea un socket asociado al puerto especificado. Un valor de 0 le asigna un puerto anónimo libre. try { ServerSocket serversocket = new ServerSocket(6666); } catch (Exception e) { System.out.println(e); } Grado en Ingeniería Informática Sistemas Distribuidos 51 Francisco J. García Izquierdo

52 Construcción (II) Constructor: public ServerSocket(int port, int cola) throws IOException, BindException; Crea un socket asociado al puerto especificado. Un valor de 0 le asigna un puerto anónimo libre. El segundo parámetro indica el tamaño de la cola de espera. Una vez que esté llena se rechazan nuevas conexiones. try { ServerSocket serversocket = new ServerSocket(6666, 100); } catch (Exception e) { System.out.println(e); } Grado en Ingeniería Informática Sistemas Distribuidos 52 Francisco J. García Izquierdo

53 Establecimiento de la conexión Método accept public Socket accept() throws IOException Espera hasta que se reciba una conexión. En ese momento devuelve un Socket cliente a través del cual se podrá comunicar con el cliente (usando getinputstream y getoutputstream) Es una operación bloqueante Grado en Ingeniería Informática Sistemas Distribuidos 53 Francisco J. García Izquierdo

54 Establecimiento de la conexión Servidor Socket servidor Cliente 1 Socket cliente Socket Cliente 1 Socket Cliente Cliente Socket cliente Grado en Ingeniería Informática Sistemas Distribuidos 54 Francisco J. García Izquierdo

55 Establecimiento de la conexión Ejemplo try { ServerSocket serversocket = new ServerSocket(13); while (true) { Socket cliente = serversocket.accept(); PrintStream ps = new PrintStream(cliente.getOutputStream()); ps.println( Hola y adios ); cliente.close(); } try { } catch (Exception e) { Socket client = new Socket("...", 13); System.out.println(e); DataInputStream = new DataInputStream(client.getInputStream()); serversocket.close(); System.out.println(in.readLine()); } client.close(); } catch (Exception e) { System.out.println(e); } Grado en Ingeniería Informática Sistemas Distribuidos 55 Francisco J. García Izquierdo

56 Cierre de la conexión Cierre del Socket public void close() throws IOException Libera los recursos utilizados por el socket (deja libre el puerto). Si se cierra el socket devuelto por accept simplemente se libera la conexión con el cliente. El ServerSocket sigue abierto recibiendo peticiones de conexión Grado en Ingeniería Informática Sistemas Distribuidos 56 Francisco J. García Izquierdo

57 Cierre de la conexión Ejemplo try {// Servidor de un solo servicio ServerSocket serversocket = new ServerSocket(6666); Socket cliente = serversocket.accept(); PrintStream ps = new PrintStream(cliente.getOutputStream()); ps.println( Hola y adios ); cliente.close(); serversocket.close(); } catch (Exception e) { System.out.println(e); } Grado en Ingeniería Informática Sistemas Distribuidos 57 Francisco J. García Izquierdo

58 Sockets en Servidor Métodos de consulta (dirección y puerto locales) : public InetAddress getinetaddress () public int getlocalport() Ejemplo: try { ServerSocket server = new ServerSocket(6666); System.out.println(server.getInetAddress()); System.out.println(server.getLocalPort ()); } catch (Exception e) { System.out.println(e); } Grado en Ingeniería Informática Sistemas Distribuidos 58 Francisco J. García Izquierdo

59 Sockets en Servidor Método setsotimeout public void setsotimeout(int ms) throws SocketException public int getsotimeout() throws SocketException Normalmente el accept espera indefinidamente hasta que llegue algún dato. Con este método se puede establecer el tiempo máximo de espera del accept (lo cual no suele ser habitual en un servidor). Grado en Ingeniería Informática Sistemas Distribuidos 59 Francisco J. García Izquierdo

60 Ejemplo: Servidor TimeOfDay public class DaytimeServer { public static void main(string[] args) { ServerSocket server; Socket client; try { server = new ServerSocket(13); try { while (true) { client = server.accept(); PrintStream p = new PrintStream(client.getOutputStream()); p.println(new Date()); client.close(); } } catch (IOException e) { server.close(); System.err.println(e); } } catch (IOException e) { System.err.println(e); } } } Grado en Informática Programación de Bases de datos 60 Francisco J. García Izquierdo

61 Recordemos el cliente try { // Protocolo daytime Socket socket = new Socket(hostname, 13); dis = new DataInputStream(socket.getInputStream()); System.out.println(dis.readLine()); socket.close(); } catch (IOException e) { System.out.println(e); } Grado en Informática Programación de Bases de datos 61 Francisco J. García Izquierdo

62 Soporte IPv6 Si el S.O. subyacente soporta IPv6, no hay que hacer nada para usar IPv6. Grado en Ingeniería Informática Sistemas Distribuidos 62 Francisco J. García Izquierdo

63 Agenda Stream sockets Aplicaciones Cliente Fundamentos de World Wide Web Implementación de Servidores Servidores Multithreaded Grado en Ingeniería Informática Sistemas Distribuidos 63 Francisco J. García Izquierdo

64 Servidores Multithreaded Toda petición de conexión recibida por un server cuando no está esperando en accept se almacena en una cola. Si la cola se llena las nuevas conexiones se rechazan. Si el servidor no despacha rápidamente a cada cliente el servicio ofrecido se degradará notablemente (se perderán conexiones). Sin embargo los servidores no suelen hacer tareas de CPU intensivas, sino que suelen realizar E/S. Usando threads se pueden aprovechar los tiempos muertos de E/S para servir a otro cliente. El programa principal se limita a escuchar en accept y cada vez que recibe una conexión le pasa el cliente a un thread y vuelve rápidamente al accept a por nuevas conexiones. Grado en Ingeniería Informática Sistemas Distribuidos 64 Francisco J. García Izquierdo

65 Servidores Multithreaded Petición 1 Petición 2 Petición 3 Inicio petición 1 Inicio petición 2 Inicio petición 3 Inicio petición 1 Inicio petición 2 Inicio petición 3 Grado en Informática Programación de Bases de datos 65 Francisco J. García Izquierdo

66 Servidores Multithreaded Tipos de servidores Multithread: Se crea un thread por cada cliente que llegue. Cuando el thread acaba de servir se libera automáticamente Pool of threads. Los threads ya están creados previamente (en número prefijado) y según vayan llegando clientes se les asigna algún thread libre. Cuando cada thread acaba su tarea espera a que se le asigne otro cliente (no se liberan) Grado en Ingeniería Informática Sistemas Distribuidos 66 Francisco J. García Izquierdo

67 Servidores Multithreaded El pool de threads es más rápido por no tener la sobrecarga de tiempo que conlleva la creación de los mismos Sin embargo ocupa más memoria al tener siempre todos los threads creados Grado en Ingeniería Informática Sistemas Distribuidos 67 Francisco J. García Izquierdo

68 socket.close() Departamento de Matemáticas y Computación Grado en Ingeniería Informática Sistemas distribuidos

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet. Sockets La biblioteca estándar de clases de Java nos proporciona todo lo que necesitamos para utilizar sockets en nuestras aplicaciones en el paquete java.net, por lo que tendremos que añadir la siguiente

Más detalles

PRACTICA FINAL. Diseño e implementación de un servidor Web básico y cliente http. Protocolo HTTP-RC

PRACTICA FINAL. Diseño e implementación de un servidor Web básico y cliente http. Protocolo HTTP-RC PRACTICA FINAL Diseño e implementación de un servidor Web básico y cliente http Descripción de la práctica Protocolo HTTP-RC Se pretende desarrollar un servidor Web básico con soporte a múltiples conexiones

Más detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Sockets para servidor Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad Carlos

Más detalles

CAPÍTULO 5: PROTOCOLO HTTP

CAPÍTULO 5: PROTOCOLO HTTP CAPÍTULO 5: PROTOCOLO HTTP En este proyecto, se establece que los clientes, a través de la aplicación instalada en sus terminales, accedan al servicio que le proporciona la transacción económica, de alguna

Más detalles

Práctica 5: Servidor web concurrente en Java

Práctica 5: Servidor web concurrente en Java Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor Creación de Sockets Cliente/Servidor Sockets en TCP Sockets en UDP Definición de DAEMON Concepto de Hilos Qué es un socket? Un socket

Más detalles

Red LSUB. 4 de marzo de 2015 GSYC

Red LSUB. 4 de marzo de 2015 GSYC Red LSUB GSYC 4 de marzo de 2015 (cc) 2015 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

CLASE SOCKET. 1. Crear un nuevo socket usando un constructor de la clase. 2. El socket trata de conectarse al host remoto.

CLASE SOCKET. 1. Crear un nuevo socket usando un constructor de la clase. 2. El socket trata de conectarse al host remoto. CLASE SOCKET 1. Crear un nuevo socket usando un constructor de la clase. 2. El socket trata de conectarse al host remoto. 3. Una vez establecida la conexión, tanto el host local como el remoto obtienen

Más detalles

Capítulo 5. Programación de aplicaciones de red

Capítulo 5. Programación de aplicaciones de red Capítulo 5. Programación de aplicaciones de red Redes de Ordenadores 2º Grado en Ingeniería en Tecnologías de Telecomunicación 1 Área de Ingeniería Telemática Capítulo 5: Programación de aplicaciones de

Más detalles

Tema 2 El Servicio Web

Tema 2 El Servicio Web Tema 2 El Servicio Web Eduardo Martínez Graciá Humberto Martínez Barberá Departamento de Ingeniería de la Información y las Comunicaciones Universidad de Murcia Introducción Nace en el CERN, en 1989 Surge

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Networking Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos básicos de redes y su implementación en Java

Más detalles

1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4. 3.4.1.- Creación de Streams de Entrada...7

1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4. 3.4.1.- Creación de Streams de Entrada...7 1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4 3.1.- INTRODUCCION... 4 3.2.- MODELO DE COMUNICACIONES CON JAVA...5 3.3.- APERTURA DE SOCKETS... 6 3.4.- CREACIÓN DE STREAMS...

Más detalles

Sockets. Sockets. 1 Introducción

Sockets. Sockets. 1 Introducción 1 Introducción Los URL y las conexiones URL (URLConnection) proporcionan un mecanismo de un nivel relativamente alto (nivel 7 del modelo OSI) para acceder a los recursos de Internet. Algunas veces, los

Más detalles

Java: comunicación en Internet. Modem. Satelite UMTS W-LAN. Láser. Fibra óptica. Conceptos básicos

Java: comunicación en Internet. Modem. Satelite UMTS W-LAN. Láser. Fibra óptica. Conceptos básicos Conceptos básicos Los computadores conectados a Internet se comunican entre ellos usando protocolos: Java: comunicación en Internet Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad

Más detalles

HTTP. Redes I. Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de 2011. GSyC - 2011 HTTP 1

HTTP. Redes I. Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de 2011. GSyC - 2011 HTTP 1 HTTP Redes I Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de 2011 GSyC - 2011 HTTP 1 c 2011 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo se distribuye

Más detalles

1 SOCKETS EN JAVA. Sistemas Distribuidos::Sockets en Java EUI-SG/INFOR.UVA.ES 1

1 SOCKETS EN JAVA. Sistemas Distribuidos::Sockets en Java EUI-SG/INFOR.UVA.ES 1 1 SOCKETS EN JAVA La programación en red siempre ha sido dificultosa, el programador debía de conocer la mayoría de los detalles de la red, incluyendo el hardware utilizado, los distintos niveles en que

Más detalles

Código de ética. Temario. Herramientas. Entrar en ubuntu

Código de ética. Temario. Herramientas. Entrar en ubuntu Código de ética Temario Nadie va a copiar partes de trabajo de otros estudiantes, de libros, de sitios web ni de ningún otro lado, con o sin permiso, sin definir claramente la referencia bibliográfica

Más detalles

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA SOCKETS EN JAVA Los sockets son puntos finales de enlaces de comunicaciones entre procesos. Los procesos los tratan como descriptores de ficheros, de forma que se pueden intercambiar datos con otros procesos

Más detalles

Justamente, una de las formas de crear un objeto de la clase URL permite especificar también el puerto:

Justamente, una de las formas de crear un objeto de la clase URL permite especificar también el puerto: Los 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. De hecho, al establecer una conexión via Internet

Más detalles

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets Uso de Sockets Este pequeño manual, le muestra cómo funciona el Socket Server para crear un pequeño servidor web que envía una página HTML a cualquier Navegador Web como Firefox, Internet Explorer, etc..

Más detalles

INTERCAMBIO DE OBJETOS

INTERCAMBIO DE OBJETOS Departament d Arquitectura de Computadors INTERCAMBIO DE OBJETOS HTTP: Hypertext Transfer Protocol Protocolo de comunicaciones estandarizado que comunica servidores, proxies-cachés y clientes. Permite

Más detalles

HyperText Transfer Protocol

HyperText Transfer Protocol HyperText Transfer Protocol Ing. Carlos A. Barcenilla c.a.barcenilla@ieee.org Basado en HTTP Made Really Easy http://www.jmarshall.com/easy/http/ 1 Qué es HTTP? HTTP significa Hypertext Transfer Protocol.

Más detalles

UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA

UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA Índice 1. Presentación...3 2. Conceptos básicos...4 2.1. TCP...4 2.2.

Más detalles

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP Bloque III: El nivel de transporte Tema 6: Conexiones TCP Índice Bloque III: El nivel de transporte Tema 6: Conexiones TCP Establecimiento de conexión Finalización de conexión Diagrama de estados Segmentos

Más detalles

5.1 Introducción. 5.2 El protocolo HTTP.

5.1 Introducción. 5.2 El protocolo HTTP. TEMA 5:. 5.1 Introducción. Inicialmente la idea del World Wide Web 1 surgió en el laboratorio de altas energías del CERN, el Centro Europeo de Investigación Nuclear. La mayoría de los experimentos, altamente

Más detalles

Funcionamiento de Servicios Web, FTP

Funcionamiento de Servicios Web, FTP Funcionamiento de Servicios Web, FTP Tema 2.- Nivel de aplicación en Internet Dr. Daniel Morató Redes de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material adaptado del libro Computer

Más detalles

Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar

Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar Sockets en Java Prof. Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos situados en diferentes máquinas? Sockets

Más detalles

Programación para redes con Java

Programación para redes con Java Programación para redes con Java Jorge Eduardo Ibarra Esquer Programación para redes Clases en java.net Protocolos Sockets Datagramas Aplicaciones cliente-servidor 1 Programación para redes Java presenta

Más detalles

Capa de Aplicación (Parte 2 de 2)

Capa de Aplicación (Parte 2 de 2) Capa de Aplicación (Parte 2 de 2) Redes de Computadoras HTTP (Hypertext Transfer Protocol) 1 Qué es Internet? Internet conecta a un conjunto de redes usando protocolos estándar Protocolos de enrutamiento,

Más detalles

Tema 7. Programacion en red.

Tema 7. Programacion en red. Tema 7 Programacion en red. Departament d Informàtica. Índice 1. Direcciones IP 1 2. UDP 3 2.1. Ejemplo.................................................. 7 3. TCP 7 4. HTTP 10 4.1. La clase URL...............................................

Más detalles

HyperText Transfer Protocol

HyperText Transfer Protocol Qué es HTTP? HTTP significa Hypertext Transfer Protocol. HyperText Transfer Protocol Ing. Carlos A. Barcenilla c.a.barcenilla@ieee.org Es el protocolo de red que se utiliza para transferir los archivos

Más detalles

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet Dr. Daniel Morató Redes de Computadores Ingeniero Técnico de Telecomunicación Especialidad en Sonido e Imagen 3º curso Temario

Más detalles

Protocolos de WWW. Bibliografía: Redes de Computadores: un enfoque descendente basado en Internet : J.F Kurose y K.W. Ross. GSyC 2007.

Protocolos de WWW. Bibliografía: Redes de Computadores: un enfoque descendente basado en Internet : J.F Kurose y K.W. Ross. GSyC 2007. HTTP Para realizar este material se han utilizado algunas transparencias proporcionadas junto con el libro Redes de Computadores: un enfoque descendente basado en Internet : Copyright 1996-2002. J.F Kurose

Más detalles

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA Qué es la arquitectura cliente servidor? La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten

Más detalles

Desarrollo de Aplicativos con winsockets

Desarrollo de Aplicativos con winsockets Seminario de Redes de Computadoras 66.48 Desarrollo de Aplicativos con winsockets Docentes: Ing. Marcelo Utard Ing. Pablo Ronco Alumnos: Baños, Germán Gámez, Pablo Rabino, Juan Pablo Salas, Federico Introducción

Más detalles

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA EJEMPLOS PROGRAMACIÓN SOCKET - JAVA 1.- Calcular el Cuadrado TCP En esta aplicación el cliente se conecta al servidor, para ello debe introducir la dirección IP del servidor y los parámetros sobre los

Más detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Comunicaciones en Java Sockets Cliente Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad

Más detalles

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES Introducción Protocolo de capa de aplicación utilizado para la transferencia de Recursos u objetos. Opera sobre TCP típicamente en el puerto 80 Simple Stateless Genérico Utiliza las extenciones MIME. Transporte

Más detalles

Las clases Java Socket y ServerSocket

Las clases Java Socket y ServerSocket Las clases Java Socket y ServerSocket Lenguajes y Herramientas de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática

Más detalles

Planificación y Administración de Redes: El nivel de Transporte. Jesús Moreno León Raúl Ruiz Padilla Septiembre 2010

Planificación y Administración de Redes: El nivel de Transporte. Jesús Moreno León Raúl Ruiz Padilla Septiembre 2010 Planificación y Administración de Redes: El nivel de Transporte Jesús Moreno León Raúl Ruiz Padilla j.morenol@gmail.com Septiembre 2010 Estas diapositivas son una obra derivada de las transparencias del

Más detalles

Desarrollo y servicios web

Desarrollo y servicios web Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2016-1 2 Sesión 10-11-PHP, Método GET POST- Qué haremos hoy? Historia Sintaxis 1. PHP Tipos de datos Operadores 2. Tipos de solicitudes HTTP Get Post

Más detalles

Sockets. Introducción. Las redes de computadoras permiten al usuario. Curso Propedéutico Maestría en Ciencias de la Computación BUAP

Sockets. Introducción. Las redes de computadoras permiten al usuario. Curso Propedéutico Maestría en Ciencias de la Computación BUAP Sockets Curso Propedéutico Maestría en Ciencias de la Computación BUAP Introducción Las redes de computadoras permiten al usuario Acceder a datos remotos Procesamiento remoto Recursos remotos Dr. Ivan

Más detalles

CGI. Qué significa CGI?

CGI. Qué significa CGI? CGI Daniel Morató Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra daniel.morato@unavarra.es Laboratorio de Interfaces de Redes http://www.tlm.unavarra.es/asignaturas/lir

Más detalles

Protocolos de Internet

Protocolos de Internet Protocolos de Internet Protocolos como IP y TCP son usados todos los días para acceder datos en la red, fueron originalmente desarrollados en los 70 s para proveer transporte de datos eficiente a través

Más detalles

Práctica IV Anexo sobre protocolos

Práctica IV Anexo sobre protocolos Práctica IV Este material es un extracto del material correspondiente de las asignaturas Comunicación de Datos y Redes de Computadores Fecha modificación: 27/11/2009 1 Bibliografía. Redes de Computadoras.

Más detalles

Cliente/Servidor en Java

Cliente/Servidor en Java Cliente/Servidor en Java Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Introducción: 1. Paradigma cliente/servidor 2. Entorno

Más detalles

Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006

Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006 Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006 Apellidos, Nombre: Grupo de matrícula: Soluciones al examen Todos 1. (1 punto) Convierte el siguiente servidor iterativo en un servidor concurrente:

Más detalles

Tecnologías para el Desarrollo de Aplicaciones para Dispositivos Móviles. Parte 2

Tecnologías para el Desarrollo de Aplicaciones para Dispositivos Móviles. Parte 2 Tecnologías para el Desarrollo de Aplicaciones para Dispositivos Móviles. Parte 2 Sesión 4. Proyecto final. Protocolos de comunicación en red. TCP/IP 2014-2015 Escuela Politécnica Superior Puntos a tratar!

Más detalles

Qué es World Wide Web? La red como instrumento de comunicación. Sugerencias para sacar el máximo partido de WWW. Requisitos para utilizar WWW

Qué es World Wide Web? La red como instrumento de comunicación. Sugerencias para sacar el máximo partido de WWW. Requisitos para utilizar WWW Qué es World Wide Web? La red como instrumento de comunicación WWW se compone de diferentes sitios Web, conocidos como páginas Web, que han sido creados por personas y organizaciones de todo el mundo,

Más detalles

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Nicolás Troncoso Carrère ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Valparaíso, 2006 1 2 3 Porqué paginas dinamicas? Confirmacion de suscripciones. Contenido generado

Más detalles

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream]. Ficheros y streams Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream]. Los streams pueden ser de entrada () de salida (). Los ficheros pueden almacenar

Más detalles

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS Ingeniería de Ap plicaciones Web Clase 2 Diego C. Martínez Departamento de Ciencias e Ing geniería de la Computación Universidad Nacional del Sur Internet y sus servicios Internet define una forma de conexión

Más detalles

Redes de Computadores II

Redes de Computadores II Redes de Computadores II Capa de Aplicación HTTP Las siguientes láminas son material de apoyo para el estudio de la materia de Redes II. No son un contenido exhaustivo del material. Se recomienda suplementar

Más detalles

APLICACIONES DE INTERNET: SOAP

APLICACIONES DE INTERNET: SOAP Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas Desarrollo de Aplicaciones Distribuidas AUTORES: Alejandro Calderón Mateos Javier García Blas David Expósito Singh Laura Prada Camacho Departamento

Más detalles

CAPITULO 5. SOCKETS. M.E Carmen Cerón G Programación Concurrente 109

CAPITULO 5. SOCKETS. M.E Carmen Cerón G Programación Concurrente 109 CAPITULO 5. SOCKETS Una de las grandes potencias del lenguaje de programación Java es la total portabilidad de sus programas gracias a su "máquina virtual". Esto adquiere una importancia aún mayor en Internet

Más detalles

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI C.U. Loraine E. Gimson Saravia a, C.U. Julián J. Fernández b L.I.D.T.I. Universidad Nacional de Salta. Facultad de Ciencias Exactas a E-Mail: saraviag@unsa.edu.ar

Más detalles

TEMA 3: La Aplicación World Wide Web

TEMA 3: La Aplicación World Wide Web TEMA 3: La Aplicación World Wide Web 1. Introducción 2. Terminología 3. El protocolo HTTP 4. Conexiones HTTP 5. Mensajes HTTP 6. Interacción Usuario-Servidor 7. El GET condicional 8. Distribución de contenidos

Más detalles

PROGRAMACION DISTRIBUIDA

PROGRAMACION DISTRIBUIDA PROGRAMACION DISTRIBUIDA Distribución basada en el patrón proxy-servant Héctor Pérez 2 Distribución de aplicaciones basadas en objetos Objetivo: rediseño de una aplicación orientada a objetos para ser

Más detalles

Lab 01: Programación de Sockets en TCP

Lab 01: Programación de Sockets en TCP UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO Departamento Académico de Informática REDES Y TELECOMUNICACIONES 2 Lab 01: Programación de Sockets en TCP Ingº Manuel Peñaloza Figueroa Dime y lo olvidaré.

Más detalles

Comandos TCP-IP para Windows

Comandos TCP-IP para Windows Comandos TCP-IP para Windows Junio 2014 A veces es necesario conocer los comandos IP, para analizar e incluso configurar nuestra red TCP/IP. A continuación una lista de comandos a utilizar en una ventana

Más detalles

Servicio de publicación de información web (HTTP)

Servicio de publicación de información web (HTTP) Servicio de publicación de información web (HTTP) La Web es uno de los servicios más comunes en Internet, tanto que se ha convertido en su cara visible para la mayoría de los usuarios. Una página Web empezó

Más detalles

Arquitecturas REST (Representa3onal State Transfer)

Arquitecturas REST (Representa3onal State Transfer) Arquitecturas REST (Representa3onal State Transfer) Protocolo HTTP Hypertext Transfer Protocol RFC2616:h"p://www.ie*.org/rfc/rfc2616.txt Protocolo orientado a transacciones Esquema pe3ción/respuesta entre

Más detalles

Tema 4. Excepciones en Java

Tema 4. Excepciones en Java Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer

Más detalles

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico El Modelo Es una arquitectura por niveles para el diseño de sistemas de red que permiten la comunicación entre todos los dispositivos de computadoras. Esta compuesto por siete niveles separados, pero relacionados,

Más detalles

Introduccion a HTML y Formularios. Gerardo Grinman 5D

Introduccion a HTML y Formularios. Gerardo Grinman 5D Introduccion a HTML y Formularios Gerardo Grinman 5D COMO FUNCIONA LA WEB 1. Cuando se conecta a la web, lo hace a través de un proveedor de servicios de Internet (ISP). Se escribe el nombre de dominio

Más detalles

HTTP, CGI, Applets y Servlets

HTTP, CGI, Applets y Servlets HTTP, CGI, Applets y Servlets Sistemas de Operación II CI-4821 Sep-Dic 2006 Mercedes Martínez 00-33042 Aixbel Martínez 01-34114 Mario Felaco 02-34888 José Luís Castillo 01-33691 Yonathan Ledo 01-34033

Más detalles

Introducción a las Redes de Computadoras

Introducción a las Redes de Computadoras Introducción a las Redes de Computadoras Capitulo 2 Capa de Aplicación Nota acerca de las transparencias del curso: Estas transparencias están basadas en el sitio web que acompaña el libro, y han sido

Más detalles

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace 5. Internet 5.1. Qué es Internet? Internet es una red mundial de equipos que se comunican usando un lenguaje común. Es similar al sistema telefónico internacional: nadie posee ni controla todo el sistema,

Más detalles

Aplicaciones sobre Internet Aplicaciones en Redes Locales DNS Domain Name System Base de datos Distribuida y Jerárquica rquica que almacena información n asociada a nombres de dominio El Servicio DNS facilita

Más detalles

El servidor Web Tema 2.- Nivel de aplicación en Internet

El servidor Web Tema 2.- Nivel de aplicación en Internet El servidor Web Tema 2.- Nivel de aplicación en Internet Dr. Daniel Morató Redes de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Temario 0.- Presentación de la asignatura 1.- Introducción

Más detalles

Examen de Redes - ETSIA 9 de septiembre - Primer Parcial

Examen de Redes - ETSIA 9 de septiembre - Primer Parcial Apellidos, Nombre: Grupo: Examen de Redes - ETSIA 9 de septiembre - Primer Parcial AUTORIZO a los profesores de la asignatura Redes de 2º curso de la ETSIA a publicar las calificaciones de los exámenes

Más detalles

GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP.

GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP. GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP. OBJETIVOS Introducir conceptos de las comunicaciones: protocolo, jerarquías de protocolos y estándares utilizados. Conocer los

Más detalles

Direcciones IP y puertos

Direcciones IP y puertos Redes en Java HTTP, Telnet, FTP, SMTP, SNMP, etc (Aplicaciones usuario) TCP/IP TCP UDP IP Acceso a la red TCP: Transmission Control Protocol UDP: User Datagram Protocol IP: Internet Protocol TCP Protocolo

Más detalles

WEB Y HTTP. HTTP: Hypertext Transfer Protocol [RFC 1945] [RFC 2616] Web Page URL (Uniform/Universal Resource Identifier)

WEB Y HTTP. HTTP: Hypertext Transfer Protocol [RFC 1945] [RFC 2616] Web Page URL (Uniform/Universal Resource Identifier) WEB Y HTTP Al comienzo de los 90 Prodigy, america online, compuserve, redes de datos nacionales, x.25, framerelay Télefono 1870, radio/televisión broadcast- 1920, 1930, Web Web: Forms, javascript, java

Más detalles

Servicio de terminal remoto. Jesús Torres Cejudo

Servicio de terminal remoto. Jesús Torres Cejudo 1 - Telnet, Rlogin, SSH. Telnet (TELecommunication NETwork) es el nombre de un protocolo de red red a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella. También es el

Más detalles

Servlets. Seminario de Programacion Rafael Vázquez Pérez

Servlets. Seminario de Programacion Rafael Vázquez Pérez Servlets Seminario de Programacion Rafael Vázquez Pérez Que son los Servlets de Java? Los Servlets son las respuesta de la tecnología Java a la programación CGI. Son programas que se ejecutan en un servidor

Más detalles

Parte 1. 0. Mitos acerca del desarrollo web. Sylvain Hallé Ÿ 8GIF128 Diseño y programación web

Parte 1. 0. Mitos acerca del desarrollo web. Sylvain Hallé Ÿ 8GIF128 Diseño y programación web Parte 1 0. Mitos acerca del desarrollo web Mito Mito #1: No hay mucho de decir acerca de la manera de escribir una página web. Ejemplo de aplicación web Microsoft Office Live Mito Mito#2: Hay software

Más detalles

Sistemas de Información

Sistemas de Información Sistemas de Información Tecnologías Web: Interactividad y envío de información Cliente Servidor CGI Agradecimientos: Jesus Villamor Lugo, Simon Pickin de IT/UCIIIM. mcfp@it.uc3m.es Concepto CGI: Common

Más detalles

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este

Más detalles

Práctica 5: Implementación en C++ de sistemas cliente/servidor basados en comunicación

Práctica 5: Implementación en C++ de sistemas cliente/servidor basados en comunicación Práctica 5: Implementación en C++ de sistemas cliente/servidor basados en comunicación síncrona Programación de Sistemas Concurrentes y Distribuidos Grado de Ingeniería Informática Dpto. de Informática

Más detalles

REDES Y COMUNICACIONES CAPÍTULO 2: CAPA DE APLICACIÓN

REDES Y COMUNICACIONES CAPÍTULO 2: CAPA DE APLICACIÓN REDES Y COMUNICACIONES CAPÍTULO 2: CAPA DE APLICACIÓN DAVID RODRÍGUEZ HERNÁNDEZ FECHA DE REVISIÓN: 1 Diciembre 2007 ZAMORA (CURSO 2007/2008) david.rgh@gmail.com Nota importante: Este documento no pretende

Más detalles

El nivel de transporte

El nivel de transporte El nivel de transporte Jesús Moreno León Alberto Molina Coballes Redes de Área Local Septiembre 2009 Nivel de transporte Gobierna el acceso múltiple a la red de los diversos procesos de la máquina que

Más detalles

COMUNICACIÓN ENTRE PROCESOS SOCKETS

COMUNICACIÓN ENTRE PROCESOS SOCKETS COMUNICACIÓN ENTRE PROCESOS SOCKETS Diseño de Sistemas Operativos Curso 2007/08 Grupo: Mi30 Martín Santana, A. David Martínez Santana, Luis Ignacio Qué son?(definición) n) Los sockets son mecanismos de

Más detalles

Conceptos básicos de redes TCP/IP. LANs

Conceptos básicos de redes TCP/IP. LANs Conceptos básicos de redes TCP/IP Daniel Morató Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra daniel.morato@unavarra.es Laboratorio de Interfaces

Más detalles

Servidores Web (II) Contenidos

Servidores Web (II) Contenidos Contenidos Servidores (II) Servidores/aplicaciones con/sin Estado Sesiones con Servlets Contextos compartidos con Servlets Acceso concurrente desde Servlets Servidores Cache Servidores Virtuales 1 2 Aplicaciones

Más detalles

Tema 2: Protocolo HTTP.

Tema 2: Protocolo HTTP. Tema 2: Protocolo HTTP. 1. Introducción. 2. Mensajes HTTP. 1. Partes del mensaje. 2. Primera línea del mensaje 3. Cabeceras del mensaje. 4. Cuerpo del mensaje. 3. Elementos Avanzados. 1. Cookies 2. Manejo

Más detalles

Aplicaciones Web. Introducción. David Cabrero Souto. Grupo MADS (http://www.grupomads.org/) Universidade da Coruña

Aplicaciones Web. Introducción. David Cabrero Souto. Grupo MADS (http://www.grupomads.org/) Universidade da Coruña Aplicaciones Web Introducción David Cabrero Souto Grupo MADS (http://www.grupomads.org/) Universidade da Coruña Ingredientes principales Arquitectura Cliente/Servidor Protocolos y estándares Web HTTP,

Más detalles

CAPA DE APLICACIONES

CAPA DE APLICACIONES CAPA DE APLICACIONES En esta capa se implementan protocolos que ayudan al intercambio de información entre usuarios Protocolos utilizados El sistema de nombres de dominio (DNS) Transferencia de Hipertexto

Más detalles

Maestría en Ciencias de la Computación

Maestría en Ciencias de la Computación U niversidad Americana de Acapulco Maestría en Ciencias de la Computación Modulo: Protocolo TCP/IP Trabajos: Practica de Protocolos Sockets Exposición del Proyecto Win 2000 Equipo No 2: Diana Nogueda Anaya

Más detalles

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc.

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc. REDES DE DATOS Modelo OSI Angélica Flórez Abril, MSc. Jerarquía de protocolos Organización en capas o niveles. El número de capas y sus funciones difieren de red a red. Cada capa ofrece servicios a las

Más detalles

UD 4: Instalación y administración de servicios Web SRI

UD 4: Instalación y administración de servicios Web SRI Instalación y administración de servicios Web SRI RESULTADOS DE APRENDIZAJE Administra servidores Web aplicando criterios de configuración y asegurando el funcionamiento del servicio. Introducción - WWW

Más detalles

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios INTRODUCCION Tema: Protocolo de la Capa de aplicación. FTP HTTP Autor: Julio Cesar Morejon Rios Qué es FTP? FTP (File Transfer Protocol) es un protocolo de transferencia de archivos entre sistemas conectados

Más detalles

Laboratorio de Redes de Comunicaciones Programación con Sockets en Java

Laboratorio de Redes de Comunicaciones Programación con Sockets en Java Laboratorio de Redes de Comunicaciones Programación con Sockets en Java Sockets orientados a conexión Sockets no orientados a conexión Java: Distribuido Java se ha construido con extensas capacidades de

Más detalles

CGI (Common Gateway Interface) es un modo sencillo de crear contenido dinámico en un sitio Web

CGI (Common Gateway Interface) es un modo sencillo de crear contenido dinámico en un sitio Web CGI Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo licencia Creative Commons

Más detalles

Taller de Sistemas de Información 1. Desarrollo web

Taller de Sistemas de Información 1. Desarrollo web Taller de Sistemas de Información 1 Clase 2 Desarrollo web Que hace el web server? Toma un pedido del cliente, y le devuelve algo a cambio En palabras mas tecnicas, permite que un cliente envie un request

Más detalles

Tema IV El lenguaje de programación PHP Tipos de Datos

Tema IV El lenguaje de programación PHP Tipos de Datos Tema IV El lenguaje de programación PHP Tipos de Datos Semestre: B-2013 Profesora: Nelly García Mora Agenda 1. Introducción al lenguaje de programación 2. Conceptos básicos 3. Ventajas y desventajas 4.

Más detalles

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad

Más detalles

PROTOCOLO HTTP. Hypertext Transfer Protocol

PROTOCOLO HTTP. Hypertext Transfer Protocol 1 PROTOCOLO HTTP Hypertext Transfer Protocol INTRODUCCIÓN HTTP: HyperText Transfer Protocol Fue desarrollado por el consorcio W3C y la IETF. El protocolo de transferencia de hipertexto es el protocolo

Más detalles

Ataques Web Automáticos: Identificación, Engaño y Contraataque

Ataques Web Automáticos: Identificación, Engaño y Contraataque Ataques Web Automáticos: Identificación, Engaño y Contraataque Mariano Nuñez Di Croce mnunez@cybsec cybsec.comcom Noviembre 2005 CIBSI 05 Valparaíso, Chile Agenda - Introducción a las Herramientas Automáticas.

Más detalles