Java Networking. Stream sockets (TCP) Departamento de Matemáticas y Computación. Grado en Ingeniería
|
|
- Adrián Vera Naranjo
- hace 6 años
- Vistas:
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¶metro2=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 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 detallesPRACTICA 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 detallesUNIVERSIDAD 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 detallesCAPÍ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 detallesPrá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 detallesFederico 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 detallesArquitecturas 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 detallesRed 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 detallesCLASE 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 detallesCapí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 detallesTema 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 detallesUniversidad 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 detalles1.- 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 detallesSockets. 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 detallesJava: 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 detallesHTTP. 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 detalles1 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 detallesCó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 detallesUNIVERSIDAD 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 detallesJustamente, 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 detallesSockets 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 detallesINTERCAMBIO 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 detallesHyperText 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 detallesUNIVERSIDADE 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 detallesBloque 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 detalles5.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 detallesFuncionamiento 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 detallesSockets 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 detallesProgramació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 detallesCapa 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 detallesTema 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 detallesHyperText 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 detallesClase 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 detallesProtocolos 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 detallesPROGRAMACIÓ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 detallesDesarrollo 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 detallesEJEMPLOS 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 detallesUNIVERSIDAD 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 detallesHTTP 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 detallesLas 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 detallesPlanificació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 detallesDesarrollo 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 detallesSockets. 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 detallesCGI. 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 detallesProtocolos 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 detallesPrá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 detallesCliente/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 detallesExamen 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 detallesTecnologí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 detallesQué 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 detallesWeb 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 detallesFicheros 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 detallesClase. 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 detallesRedes 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 detallesAPLICACIONES 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 detallesCAPITULO 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 detallesSERVIDOR 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 detallesTEMA 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 detallesPROGRAMACION 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 detallesLab 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 detallesComandos 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 detallesServicio 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 detallesArquitecturas 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 detallesTema 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 detallesEl 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 detallesIntroduccion 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 detallesHTTP, 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 detallesIntroducció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 detalles5.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 detallesAplicaciones 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 detallesEl 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 detallesExamen 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 detallesGUÍ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 detallesDirecciones 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 detallesWEB 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 detallesServicio 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 detallesServlets. 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 detallesParte 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 detallesSistemas 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 detallesUnidad 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 detallesPrá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 detallesREDES 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 detallesEl 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 detallesCOMUNICACIÓ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 detallesConceptos 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 detallesServidores 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 detallesTema 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 detallesAplicaciones 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 detallesCAPA 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 detallesMaestrí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 detallesREDES 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 detallesUD 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 detallesINTRODUCCION. 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 detallesLaboratorio 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 detallesCGI (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 detallesTaller 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 detallesTema 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 detallesConceptos 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 detallesPROTOCOLO 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 detallesAtaques 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