Práctica 5: Servidor web concurrente en Java

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

Download "Práctica 5: Servidor web concurrente en Java"

Transcripción

1 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 como ejemplo en las clases de teoría (incluido como anexo al final del capítulo), y lo modificaremos para obtener un servidor web concurrente, capaz de admitir conexiones simultáneamente con varios clientes. Nuestro servidor seguirá la versión 1.0 del protocolo HTTP definida en el RFC 1945 (http://www.ietf.org/rfc/rfc1945.txt), aunque no permitirá todas sus posibilidades de intercambio de información, sino sólo un subconjunto reducido de las mismas. Como ya hemos estudiado, esta versión emplea conexiones no persistentes, es decir, el cliente realiza una conexión TCP distinta para cada uno de los objetos que componen la página web. Por lo tanto, cada petición se tratará de forma independiente y no es necesario mantener información de estado de una petición a la siguiente, lo que simplifica la implementación del servidor. Por otra parte, nuestro servidor debe ser capaz de atender varias peticiones concurrentemente, por lo que debe ser multihilo. Esto nos permitirá estudiar un ejemplo sencillo de servidor concurrente y ver las diferencias en la estructura con respecto al caso iterativo.

2 P5-2 Prácticas de Redes de Computadores En los siguientes apartados abordaremos diferentes aspectos que deben resolverse para la correcta implementación del servidor propuesto. 1. Clases para comunicaciones Como sabemos el servicio de web utiliza para transferir sus mensajes el protocolo de nivel de transporte TCP. Por ello, en este apartado veremos las clases básicas para comunicar un cliente y un servidor mediante sockets TCP. La información que proporcionamos sobre las clases java que hay que emplear y sus métodos es bastante limitada. Para ver los detalles es aconsejable consultar la página web de Sun con información sobre java (http://java.sun.com/javase/6/docs/api). También puede ser de interés consultar el documento: Como mínimo necesitaremos dos clases pertenecientes al paquete java.net.*, las clases Socket y ServerSocket. 1. Socket permite establecer una conexión entre un cliente y un servidor TCP. El cliente crea un socket e inicia la conexión con el servidor. Una vez conectado al otro extremo utiliza este socket para el envío y la recepción de información. 2. ServerSocket permite a un servidor escuchar en un puerto a la espera de una conexión TCP. Al establecerse ésta, en el programa servidor se crea un objeto de la clase Socket que se emplea para el intercambio de información posterior entre ambos extremos. Nuestro servidor esperará las conexiones de los clientes escuchando en un puerto previamente determinado. Como nuestro proceso no tiene privilegios de administrador, el puerto con el que trabaje el servidor deberá ser uno mayor que el Por ejemplo, podemos elegir el Para esperar la conexiones hay que invocar el método accept() de la clase ServerSocket. Este método bloquea la ejecución del programa a la espera de una conexión. Al recibir una petición, accept() crea un nuevo objeto de la clase Socket, que se usará durante el resto de la comunicación con el cliente. El empleo del método accept() puede generar una excepción IOException, por lo que, o bien habrá que capturarla mediante una cláusula try, tal y como se hizo en la práctica anterior, o bien puede lanzarse (throws) al programa o función que llamó al método que genera la

3 Servidor web concurrente en Java P5-3 excepción. De esta manera no será necesario programar una cláusula try. En nuestro caso, dado que es la máquina virtual Java quien llamó al método main, esta excepción se lanzará hacia ella. 2. Gestión de la entrada/salida Una vez conectado con un cliente, con el fin de comprobar y depurar el funcionamiento del servidor, éste VISUALIZARÁ POR PANTALLA LAS CADENAS DE CARACTERES que reciba del cliente. Para manejar la transferencia de información a través del socket, la clase Socket dispone de dos métodos: getinputstream() y getoutputstream(), que proporcionan un flujo de entrada y uno de salida, respectivamente. Como ya vimos en una práctica anterior, es mejor no manejar estos flujos directamente, sino anidados a través de otras clases como Scanner y PrintWriter y, al igual que hicimos allí, serán las que empleemos. A continuación se muestra, de forma breve, un ejemplo de uso de estas clases y algunos de sus métodos: Scanner recibe = new Scanner (cliente.getinputstream()); System.out.println(recibe.nextLine()); PrintWriter envia = new PrintWriter(cliente.getOutputStream()); envia.println( GET / HTTP/1.0 ); donde cliente es un objeto de la clase Socket conectado con un cliente. 3. Descripción del protocolo e implementación del servidor El servidor que vamos a realizar sigue la versión 1.0 del protocolo HTTP. No obstante, nuestro servidor no implementará todo el protocolo, sino únicamente un subconjunto de éste. En este apartado vamos a explicar qué parte implementaremos. Para ello necesitamos conocer, qué peticiones debe ser capaz de servir y cómo responderá a esas peticiones. HTTP emplea dos tipos de mensajes: peticiones de los clientes a los servidores y respuestas de los servidores a los clientes. Ambos poseen una estructura similar formada por tres campos: una línea inicial que se incluye siempre, a continuación puede haber una o más cabeceras (en la versión 1.0 ninguna es obligatoria), y por último, un cuerpo que no siempre estará presente. Tras finalizar las cabeceras (o después de la línea inicial, en el

4 P5-4 Prácticas de Redes de Computadores caso de que no haya ninguna cabecera) debe haber una línea en blanco, formada por los caracteres ASCII: CR y LF (retorno de carro y salto de línea, respectivamente). Mensaje de petición del cliente En los mensajes de petición la línea inicial contiene la orden deseada por el cliente. Aunque el estándar especifica varias órdenes posibles, la más habitual es la orden GET, que será la única que implementaremos. Esta orden permite al cliente solicitar objetos almacenados en el servidor. Comienza con la palabra reservada GET, le sigue el objeto solicitado por el cliente y finaliza con la versión del protocolo empleado. En el caso de la versión 1.0 tiene la forma: GET objeto HTTP/1.0 CR LF CR LF Donde, como se ha indicado, CR LF son los caracteres de retorno de carro y salto de línea, respectivamente. Por ejemplo, para poder obtener la página web correspondiente a un navegador se conectará al puerto 80 del servidor y enviará la orden: GET /index.html HTTP/1.0 línea en blanco enviada también por el navegador. Nuestro servidor sólo analizará la línea inicial de los mensajes de petición y no se preocupará del resto. Para interpretar la línea de petición, el servidor necesita analizar cada una de las palabras que la componen. Esta tarea podemos resolverla fácilmente mediante la clase java Scanner que nos permite leer el siguiente elemento (String) de un flujo de entrada, mediante el método next(). Como ya hemos mencionado, la descripción de dicha clase se puede consultar en la página web de Sun. Como nosotros sólo vamos a implementar la orden GET, nuestro servidor sólo tiene que comprobar si la primera palabra de la cadena es GET, y en caso afirmativo identificar qué fichero ha solicitado el cliente. Para comprobar que la petición es un GET podemos emplear cualquiera de los métodos que tiene la clase String para comparar dos objetos de ese tipo, como equals, equalsignorecase o startswith. Si el servidor tiene el fichero solicitado (y el cliente dispone de los permisos necesarios para acceder a él), el servidor debe enviárselo al cliente, y en caso contrario responder con un mensaje de error.

5 Servidor web concurrente en Java P5-5 Mensaje de respuesta del servidor La respuesta a una petición GET incluye los tres campos que hemos mencionado antes, y es necesario que nuestro servidor los emplee todos. Veamos que información debemos poner en cada uno de ellos: Campo 1: la línea inicial En el caso de la respuesta de un servidor esta línea se denomina línea de estado y emplea el formato siguiente: versión num cadena donde versión es la versión del protocolo utilizada, num es un código numérico de tres cifras que expresa el resultado de la petición realizada por el cliente, y por último, cadena es una cadena de caracteres que también indica el resultado de la operación pero ahora en un formato fácilmente comprensible por los programadores. Algunos de los valores de los últimos dos campos son: Num 200 OK Cadena 304 Not Modified 400 Bad Request 401 Unauthorized 404 Not Found 501 Not Implemented La línea de estado típica de la versión 1.0 para indicar que se envía el objeto pedido por el cliente es: HTTP/ OK Si, por el contrario, el servidor no dispone del objeto solicitado responderá con: HTTP/ Not Found Estas son las dos líneas de estado que nuestro servidor debe implementar. Campo 2: las líneas de cabecera Aunque la versión 1.0 no establece ninguna cabecera obligatoria lo habitual es que los servidores envíen varias líneas de cabecera en sus respuestas. Estas líneas permiten a los servidores incluir información sobre

6 P5-6 Prácticas de Redes de Computadores el objeto que van a enviar en el cuerpo del mensaje, así como avisar al cliente en el caso de vayan a cerrar la conexión una vez finalizado el envío del mensaje al cliente. El orden de las distintas cabeceras es irrelevante. El formato de las líneas de cabecera es: Etiqueta: valor donde la Etiqueta indica el tipo de información que se envía y valor su valor asociado. Las líneas siguientes muestran algunas líneas típicas de cabecera: Content-Type: text/html Content-Length: 3453 Content-Encoding: x-gzip Date: Tue, 15 Nov :12:31 GMT Expires: Tue, 12 Oct :22:41 GMT Nuestro servidor deberá enviar, al menos, las líneas de cabecera del Content-Type y el Content-Length. La primera de ellas indica el tipo MIME del objeto que se va a enviar. Por ejemplo, un fichero *.htm tiene como tipo MIME text/html. Algunos de los tipos MIME más usados pueden encontrarse en la siguiente tabla: Extensión del fichero.htm.html.txt.gif.jpg.jpeg.pdf text/html text/plain image/gif image/jpeg Tipo MIME application/pdf * application/octet-stream La clase String posee el método endswith(string) que podemos utilizar para comprobar la extensión del fichero. En el caso en el que el servidor no pueda asociar la extensión del fichero con una de las específicas que tiene definidas, empleará como tipo por defecto el último mostrado en la tabla: application/octet-stream. En nuestro caso, hay que implementar como mínimo los tipos: text/html, image/gif y application/octet-stream. Por otra parte, la etiqueta Content-Length hace referencia al tamaño del objeto que se va a enviar. Para calcular ese tamaño se puede utilizar la

7 Servidor web concurrente en Java P5-7 clase File (perteneciente al paquete java.io.*) ya que uno de sus métodos (length()) permite obtener este dato. Por último, las líneas de la cabecera y el cuerpo están separados mediante una línea en blanco, que en nuestro caso se puede generar con el método println() de la clase PrintWriter. Campo 3: el cuerpo de mensaje El cuerpo es el objeto que había solicitado el cliente. El servidor tiene que buscarlo en su sistema de ficheros local, para lo que puede utilizar la clase FileInputStream. Al constructor de esta clase se le pasa como parámetro el nombre del fichero (o bien un objeto de la clase File) y, si no existe generará la excepción FileNotFoundException. Capturando dicha excepción podemos averiguar si existe o no el fichero. Como lo habitual es que las peticiones vengan de un navegador, éste intentará visualizar cualquier respuesta del servidor. Por ello, incluso aunque no haya encontrado el objeto solicitado y devuelva un mensaje de error, el servidor suele incluir una página html informando del suceso. Nuestro servidor también debe seguir ese comportamiento habitual, y aunque el fichero no exista devolverá una respuesta completa: línea de estado, cabecera y cuerpo. En este caso la cabecera identificará al cuerpo como text/html y el cuerpo será un mensaje de error en formato html como el siguiente: <html><body><h1>404 Not Found</h1></body></html> Ejercicio 1: Completa el servidor web del anexo para que se ajuste a la versión 1.0 del protocolo HTTP conforme a lo descrito en este apartado. Respecto a los tipos MIME, sólo es necesario implementar los tipos text/html, image/gif y application/octet-stream. En caso de recibir una orden diferente a GET, el servidor debe contestar con la línea de estado HTTP/ Not Implemented. Por lo tanto, los cambios que hay que realizar con respecto al servidor del anexo son: 1. Comprobar que la petición es un GET. 2. Añadir la línea de estado (HTTP/1.0 ). 3. Comprobar la extensión del fichero y añadir las cabeceras correspondientes, relacionadas con su extensión y su longitud (Content-Length y Content- Type).

8 P5-8 Prácticas de Redes de Computadores Recuerda que el servidor debe visualizar por pantalla todo lo que reciba del cliente. 4. Comprobación del funcionamiento del servidor Una vez que hayamos programado el servidor web necesitamos una página de muestra para comprobar que nuestro servidor atiende correctamente las peticiones de sus clientes. Para ello podemos utilizar la web de la asignatura de redes, por ejemplo. La copiamos a nuestro ordenador local mediante la instrucción wget r nh desde el directorio donde esté nuestro programa. A continuación, lanzaremos el servidor en nuestro ordenador local y nos conectaremos a él mediante el navegador, usando el URL siguiente: Se supone que, como se ha recomendado en el apartado 1, el servidor escucha en el puerto En otro caso, habría que sustituir el 8000 que aparece en el URL por el número de puerto correspondiente. Si el proceso servidor pudiera lanzarse con privilegios de administrador y escuchar en el puerto 80 (puerto estándar para el servicio web) no sería necesario indicar el número de puerto en el URL del navegador. Si nuestro servidor no funciona correctamente al primer intento, puede resultar útil para realizar la depuración emplear el programa telnet. Si tecleamos: telnet localhost 8000 GET /redes/index.html http/1.0 CR LF Veremos en pantalla, a continuación, la respuesta del servidor y podremos comprobar si es la esperada. 5. Implementación de la concurrencia Dado que el servidor debe ser capaz de atender varias peticiones simultáneamente, vamos a convertir el servidor iterativo en un servidor concurrente usando varios hilos de ejecución. En el hilo principal, el servidor permanecerá a la espera de que se conecte algún cliente. Cuando se

9 Servidor web concurrente en Java P5-9 reciba una petición de conexión TCP, el servidor aceptará la conexión y se la pasará a un nuevo hilo para ser atendida mientras el hilo principal del servidor queda a la espera de nuevos clientes. El hilo principal tendrá un aspecto parecido al siguiente: public class ServidorWebConcurrente { public static void main(string argv[]) throws UnknownHostException, IOException { int puerto=8000; ServerSocket servidor=new ServerSocket(puerto); while (true) { //Espero un cliente Socket cliente=servidor.accept(); // Código para lanzar un hilo que atienda la petición // Hay que pasarle el socket cliente al hilo Java ofrece varias posibilidades para crear un hilo de ejecución. La más sencilla es declarar una subclase de la clase Thread. Cada objeto de esta subclase permite lanzar un nuevo hilo de ejecución. La sintaxis para crear una nueva subclase a partir de la clase Thread es: class PeticionHTTP extends Thread La clase Thread (y por extensión la subclase creada a partir de ella) siempre incluye un método run() que contiene el código que debe ejecutarse concurrentemente con el resto del programa. Poniendo juntos todos estos detalles, nuestra nueva clase tendrá un aspecto parecido a: class PeticionHTTP extends Thread { //atributos... public PeticionHTTP(Socket s) { // Código a ejecutar durante la creación del hilo public void run() { // Código del nuevo hilo que atiende al cliente http

10 P5-10 Prácticas de Redes de Computadores Después de haber visto cómo se declara una subclase de la clase Thread, vamos a ver cómo utilizarla. El primer paso es crear un objeto de la subclase nueva, en nuestro ejemplo, la clase PeticionHTTP. A continuación hay que arrancar el hilo. Esto se hace invocando el método start(), que a su vez llamará al método run(). PeticionHTTP pethttp=new PeticionHTTP(); pethttp.start(); En nuestro caso, cada objeto de la clase PeticionHTTP deberá atender una petición HTTP a través de la conexión TCP que se acaba de realizar tras la ejecución del método accept(). El socket devuelto por el método accept()se crea en el hilo principal, pero debe ser accesible desde los nuevos hilos que se van lanzando. Esto se puede hacer a través del constructor de la clase PeticionHTTP, pasándole como parámetro el socket conectado con el cliente. El hilo principal creará un nuevo objeto de la clase PeticionHTTP, le pasará como parámetro el socket conectado con el cliente, y después invocará el método start(): PeticionHTTP pethttp=new PeticionHTTP(cliente); pethttp.start(); Ejercicio 2: Copia el servidor web iterativo del ejercicio anterior a un fichero llamado ServidorWebConcurrente.java. Modifica este nuevo programa para convertir el servidor iterativo en servidor concurrente. 6. Anexo En este anexo se incluye el código del micro-servidor web iterativo visto en clase. Las principales diferencias entre este servidor y el que hay que realizar en esta práctica son dos. La primera es que el servidor mostrado como ejemplo más abajo no sigue el estándar HTTP/1.0, ya que no devuelve siempre la línea de estado ni la cabecera de respuesta. La segunda diferencia es que no es concurrente. import java.net.*; import java.util.scanner;

11 Servidor web concurrente en Java P5-11 import java.io.*; class ServidorWebIterativo { public static void main(string args[]) throws UnknownHostException, IOException { byte[] buffer = new byte[1024]; int bytes; int Puerto=8000; ServerSocket servidor=new ServerSocket(puerto); while(true) { // espero a que venga un cliente Socket cliente=servidor.accept(); // nos aseguramos de que el fin de línea se ajuste al estándar System.setProperty("line.separator","\r\n"); Scanner lee=new Scanner (cliente.getinputstream()); PrintWriter escribe=new PrintWriter(cliente.getOutputStream(),true); // esto debe ser el "GET" lee.next(); // esto es el fichero String fichero = "." + lee.next(); // comprobamos si existe FileInputStream fis = null; boolean existe = true; try { fis = new FileInputStream(fichero); catch (FileNotFoundException e) { existe = false; if (existe && fichero.length()>2) while((bytes = fis.read(buffer))!= -1 ) // enviar fichero cliente.getoutputstream().write(buffer, 0, bytes); else {escribe.println("http/ Not Found"); escribe.println(); cliente.close();

12 P5-12 Prácticas de Redes de Computadores

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

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

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

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

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

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

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

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

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

Práctica III: Streams, Readers y Writers

Práctica III: Streams, Readers y Writers Práctica III: Streams, Readers y Writers Objetivos En esta práctica vamos a aprender a utilizar Streams, Readers y Writers para realizar operaciones de entrada/salida desde programas escritos en el lenguaje

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

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

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

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

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

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

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

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

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

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

LABORATORIO DE RC PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE

LABORATORIO DE RC PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC PRÁCTICA 1: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE ECO UDP PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE

Más detalles

JSP Básico. Índice. 2 Traducción de los JSP a servlets...2. 6 Acciones...8. 1 Introducción a JSP... 2

JSP Básico. Índice. 2 Traducción de los JSP a servlets...2. 6 Acciones...8. 1 Introducción a JSP... 2 Índice 1 Introducción a JSP... 2 2 Traducción de los JSP a servlets...2 3 Elementos de JSP...3 4 Inserción de código en páginas JSP... 4 4.1 Expresiones...4 4.2 Scriptlets...4 4.3 Declaraciones... 4 4.4

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

TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5.

TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5. TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5.3 TRABAJANDO CON EXCEPCIONES: DECLARACIÓN, CONSTRUCCIÓ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

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

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

Ejercicios de evaluación de fundamentos de programación en Java

Ejercicios de evaluación de fundamentos de programación en Java Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4

Más detalles

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

Interacción entre Aplicaciones: objetos distribuidos e invocación remota Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones

Más detalles

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Flujos de Entrada/Salida 2 Flujos de Entrada/Salida Hay librerías Orientadas a bytes Orientadas a caracteres Se usa la abstracción de un

Más detalles

Desarrollar, usando Java, un cliente básico del protocolo web que permita enviar una solicitud HTTP a un servidor web y procesar la respuesta.

Desarrollar, usando Java, un cliente básico del protocolo web que permita enviar una solicitud HTTP a un servidor web y procesar la respuesta. Cliente HTTP en Java Objetivos Desarrollar, usando Java, un cliente básico del protocolo web que permita enviar una solicitud HTTP a un servidor web y procesar la respuesta. Requerimientos de la aplicación:

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

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

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

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

James Gosling, creador de Java

James Gosling, creador de Java Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para

Más detalles

Introduciendo datos desde el

Introduciendo datos desde el Introduciendo datos desde el teclado Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Crear programas interactivos que lean datos

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

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Práctica 4: Herencia. Objetivos:

Práctica 4: Herencia. Objetivos: Práctica 4: Herencia Objetivos: Como se implementa la herencia en Java (superclase - clase descendiente). Utilizar super. Redefinición de métodos Clase Object Clase System Clases abstractas 1. Herencia.

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

MANUAL TÉCNICO DEL PROXY UTN

MANUAL TÉCNICO DEL PROXY UTN MANUAL TÉCNICO DEL PROXY UTN El Proxy UTN fue desarrollado en Java con el JDK1.1.8, se emplearon los paquetes: java.net.- Para el manejo de comunicaciones de red. java.io.- Para manejo de entrada/salida.

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2 Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

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

EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es:

EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es: EXCEPCIONES EN JAVA Uno de los problemas más importantes al escribir aplicaciones es el tratamiento de los errores. Errores no previstos que distorsionan la ejecución del programa. Las excepciones de Java

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan

Más detalles

CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014

CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014 Ings. Mario Bressano & Miguel Iwanow ENVÍO 01/2014 Introducción al Lenguaje Java Paquetes Un Paquete en Java es un contenedor de clases que permite agrupar

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

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

CAPÍTULO 14. DESARROLLO

CAPÍTULO 14. DESARROLLO CAPÍTULO 14. DESARROLLO DE SISTEMAS ESPECÍFICOS 1. Introducción En los últimos años han aparecido multitud de nuevas plataformas para desarrollar aplicaciones y ponerlas en explotación. En este capítulos

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

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Generación de excepciones.

Más detalles

Introducción - por qué usarlas?(1)

Introducción - por qué usarlas?(1) Excepciones en Java Introducción - por qué usarlas?(1) En el mundo de la programación hay algo que siempre ocurre: los errores en los programas. Pero qué sucede realmente después de que ha ocurrido el

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

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

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6.

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6. 1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6. Servidores iterativos y concurrentes 7. Estándares Stream Es

Más detalles

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE PRÓLOGO... 13 APECTOS BÁSICOS DE JAVA... 15 1.1. LA MÁQUINA VIRTUAL JAVA... 15 1.2. EDICIONES JAVA... 16 1.3. ESTRUCTURA DE UN PROGRAMA JAVA... 16 1.4. EL MÉTODO

Más detalles

Asignatura: Laboratorio de Computadores. Curso 2007-08. 5º Semestre, 3er. Curso. Ingeniería Informática. Práctica de SOCKETS

Asignatura: Laboratorio de Computadores. Curso 2007-08. 5º Semestre, 3er. Curso. Ingeniería Informática. Práctica de SOCKETS Asignatura: Laboratorio de Computadores. Curso 2007-08. 5º Semestre, 3er. Curso. Ingeniería Informática. Práctica de SOCKETS Especificación de la práctica: Un protocolo sencillo para transferencia de ficheros

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Luego lleve el cliente a otra máquina y ejecute desde ahí usando el nombre de la máquina del servidor.

Luego lleve el cliente a otra máquina y ejecute desde ahí usando el nombre de la máquina del servidor. Ejemplos de sockets Los sockets son un mecanismo de comunicación entre procesos de muy bajo nivel, donde el usuario tiene que hacer muchas cosas, pero que siguen siendo muy importantes. En esta práctica

Más detalles

Tema 4 El paradigma cliente-servidor

Tema 4 El paradigma cliente-servidor Tema 4 El paradigma cliente-servidor F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de

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

Especificaciones de la Pasarela SMS PREMIUM

Especificaciones de la Pasarela SMS PREMIUM Especificaciones de la Interfaz HTTP Especificaciones de la Pasarela SMS PREMIUM Altiria TIC, S.L.L. Versión: 3.1 Copyright c Altiria TIC 2010 Este documento sólo puede ser reproducido por completo o en

Más detalles

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine.

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine. Capítulo 6 Servlets En esta sección se va a tratar el primer componente que corre del lado del servidor, y es uno de los puntos fundamentales para la comunicación entre el cliente (browser) y el servidor.

Más detalles

Programación Orientada a Objetos. Tema 7: Persistencia

Programación Orientada a Objetos. Tema 7: Persistencia Programación Orientada a Objetos Tema 7: Persistencia Tema 7: Persistencia Contenidos 1. LIBRERÍA I/O 2. FICHEROS 3. FICHEROS DE ACCESO DIRECTO 4. FICHEROS DE TEXTO 5. SERIALIZACIÓN DE OBJETOS 6. EJEMPLO

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

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 5. Gestión de ficheros de texto en Java Contenido Introducción La clase PrintWriter La clase

Más detalles

PROGRAMACIÓN JEE CON SERVLETS

PROGRAMACIÓN JEE CON SERVLETS INTRODUCCIÓN A LOS SERVLETS PROGRAMACIÓN JEE CON SERVLETS Los Servlets son clases Java que se ejecutan en un servidor de aplicación, para contestar a las peticiones de los clientes. Los Servlets no se

Más detalles

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

Desarrollo de Servicios Web con JBuilder

Desarrollo de Servicios Web con JBuilder Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

" ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2

 ##$ % & '( % & )*+),$ -##$ -!- $! -./ - 0WebClass1-2 ! " ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2!" # 345 637 6$5!!!89 & 5 :8-7 & & ;(< 8 $ + - 8 : #= ' 7= : 0 & 0 &- =.> = ;(("9 &? WebClass - 1@#$% &'A1 ;(< 8- ( ) * *+ " $ % B9 5 5 # :!- WebClass

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

Ahorcado online multijugador

Ahorcado online multijugador Ahorcado online multijugador Objetivo Que el alumno ponga en práctica los conocimientos teóricos y prácticos adquiridos en la Parte II de la asignatura de Programación Concurrente. La práctica podrá realizarse

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

1. Visión general de RMI

1. Visión general de RMI 1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina

Más detalles

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA Jaime Fernández ndez Mayo 2006 Índice Java Aplicaciones web Servlets JSP Servidores de aplicaciones IDE`s Ejemplo Historia Java Lenguaje orientado

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

Paquetes de java. java.applet

Paquetes de java. java.applet Paquetes de java El lenguaje Java proporciona una serie de paquetes que incluyen ventanas, utilidades, un sistema de entrada/salida general, herramientas y comunicaciones. En la versión actual del JDK,

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

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

API de java. (http://download.oracle.com/javase/6/docs/api/) Guía de alumno Laboratorio 9. Recursos disponibles en moodle para este día.

API de java. (http://download.oracle.com/javase/6/docs/api/) Guía de alumno Laboratorio 9. Recursos disponibles en moodle para este día. PROGRAMACIÓN Laboratorio 9 Guía del Alumno 1 LABORATORIO 9: JAVA.IO - ENTRADA/SALIDA JAVA.NET - URL Versión:2013-05- 20 Conocimientos previos Temario visto en las clases de teoría. Se recomienda haber

Más detalles

Para esto, he desarrollado una aplicación en Visual Studio con tres proyectos, como se presenta en la siguiente ilustración:

Para esto, he desarrollado una aplicación en Visual Studio con tres proyectos, como se presenta en la siguiente ilustración: Caso Práctico: Diffie-Hellman sobre socket de C# Este caso práctico se abordará en el ámbito de aplicaciones cliente/servidor; programación con Socket. Se aplicará el lenguaje C#, el.net Framework 3.5

Más detalles

Problemas sobre DNS y HTTP Sistemas Telemáticos I

Problemas sobre DNS y HTTP Sistemas Telemáticos I Problemas sobre DNS y HTTP Sistemas Telemáticos I Universidad Rey Juan Carlos Mayo de 2005 Problema 1 A las 9 de la mañana, cuando la red aún va rápida (aunque las caches están todas vacías), Juan hace

Más detalles

Especificaciones de la Interfaz Email para envío de SMS

Especificaciones de la Interfaz Email para envío de SMS Especificaciones de la Interfaz Email para envío de SMS Altiria TIC, S.L.L. Versión: 1.1 Copyright c Altiria TIC 2014 Este documento sólo puede ser reproducido por completo o en parte, almacenado, recuperado

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

Introducción a las Redes de Computadoras. Obligatorio 2 2011

Introducción a las Redes de Computadoras. Obligatorio 2 2011 Introducción a las Redes de Computadoras Obligatorio 2 2011 Facultad de Ingeniería Instituto de Computación Departamento de Arquitectura de Sistemas Nota previa - IMPORTANTE Se debe cumplir íntegramente

Más detalles

Práctica 2: Extensión de un servidor con servlets

Práctica 2: Extensión de un servidor con servlets Introducción Práctica 2: Extensión de un servidor con servlets ( 2 horas ) En esta práctica veremos otra forma de realizar aplicaciones semejantes a los CGIs, los servlets. El enfoque del diseño con servlets

Más detalles

Un breve resumen del lenguaje Java

Un breve resumen del lenguaje Java Un breve resumen del lenguaje Java 1.1. Órdenes para trabajar con código Java desde una máquina Unix.............. 1 1.2. Comentarios......................................... 2 1.3. Declaración de datos

Más detalles

DESARROLLO DE APLICACIONES PARA LA WEB II

DESARROLLO DE APLICACIONES PARA LA WEB II INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO DESARROLLO DE APLICACIONES PARA LA WEB II ENCABEZADOS Y MÉTODOS BELEN HURTADO ORTIZ 2008630140 8CV5 ENCABEZADOS Y MÉTODOS DE HTTP Comandos Comando

Más detalles