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

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

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

Transcripción

1 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 donde existen tipos de computadoras muy diferentes. Las siguientes bibliotecas de la API de Java contienen una serie de clases que son interesantes de cara a la creación de aplicaciones que trabajen en red. Las más importantes son: java.applet: Da soporte a las applets. java.net: Clases para redes. Dan acceso a TCP/IP, sockets y URLs. Existen otras bibliotecas más complejas, orientadas también a la programación como son las siguientes: java.sql: Paquete que contiene el JDBC, para conexión de programas Java con Bases de datos. java.rmi: Paquete RMI, para localizar objetos remotos, comunicarse con ellos e incluso enviar objetos como parámetros de un objeto a otro. org.omg.corba: Facilita la posibilidad de utilizar OMG CORBA, para la conexión entre objetos distribuidos, aunque estén codificados en distintos lenguajes. org.omb.cosnaming : Da servicio al IDL de Java, similar al RMI pero en CORBA. Una de las características de Java que lo hacen especialmente interesante para Internet es que sus programas objeto (códigos de byte) son verificables para poder detectar posibles virus en sus contenidos. Estos programas Códigos de byte no necesitan ser recompilados, y una vez verificados (pues Java trabaja con nombres no con direcciones), se transforman en direcciones físicas de la máquina destino. M.E Carmen Cerón G Programación Concurrente 109

2 Figura 1. : Ejecución de un código de byte Esta forma de trabajar cuida la seguridad sin un grave perjuicio de la eficiencia. Un programa en Java es sólo unas 20 veces más lento que uno programado en C, cifra aceptable para la mayoría de las tareas, y suponiendo que no se utilice un compilador JIT. El paquete java.net Java ofrece un conjunto de clases que permiten utilizar los URLs (Uniform Resource Locators). Un URL es una dirección electrónica que permite encontrar una información en Internet especificando: El nombre del protocolo que permitirá leer la información. Por ejemplo HTTP. El nombre del servidor que proporciona la información. Por ejemplo sunsite.unc.edu o bien una dirección IP directamente. El nombre del fichero en el servidor. Por ejemplo /Javafaq/Javafaq.htm. 5.1 Fundamentos Los sockets son un sistema de comunicación entre procesos de diferentes máquinas de una red. Más exactamente, un socket es un punto de comunicación por el cual un proceso puede emitir o recibir información. Fueron popularizados por Berckley Software Distribution, de la universidad norteamericana de Berkley. Los sockets han de ser capaces de utilizar el protocolo de streams TCP (Transfer Contro Protocol) y el de datagramas UDP (User Datagram Protocol). Utilizan una serie de primitivas para establecer el punto de comunicación, para conectarse a una máquina remota en un determinado puerto que esté disponible, para escuchar en él, para leer o escribir y publicar información en él, y finalmente para desconectarse. Con todas primitivas se puede crear un sistema de diálogo muy completo. M.E Carmen Cerón G Programación Concurrente 110

3 Imagen 10: Funcionamiento de una conexión socket 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 transmitiendo y recibiendo a través de sockets. El tipo de sockets describe la forma en la que se transfiere información a través de ese socket. Sockets Stream (TCP, Transport Control Protocol) Son un servicio orientado a conexión donde los datos se transfieren sin encuadrarlos en registros o bloques. Si se rompe la conexión entre los procesos, éstos serán informados. El protocolo de comunicaciones con streams es un protocolo orientado a conexión, ya que para establecer una comunicación utilizando el protocolo TCP, hay que establecer en primer lugar una conexión entre un par de sockets. Mientras uno de los sockets atiende peticiones de conexión (servidor), el otro solicita una conexión M.E Carmen Cerón G Programación Concurrente 111

4 (cliente). Una vez que los dos sockets estén conectados, se pueden utilizar para transmitir datos en ambas direcciones. Sockets Datagrama (UDP, User Datagram Protocol) Son un servicio de transporte sin conexión. Son más eficientes que TCP, pero no está garantizada la fiabilidad. Los datos se envían y reciben en paquetes, cuya entrega no está garantizada. Los paquetes pueden ser duplicados, perdidos o llegar en un orden diferente al que se envió. El protocolo de comunicaciones con datagramas es un protocolo sin conexión, es decir, cada vez que se envíen datagramas es necesario enviar el descriptor del socket local y la dirección del socket que debe recibir el datagrama. Como se puede ver, hay que enviar datos adicionales cada vez que se realice una comunicación. Sockets Raw Son sockets que dan acceso directo a la capa de software de red subyacente o a protocolos de más bajo nivel. Se utilizan sobre todo para la depuración del código de los protocolos. Diferencias entre Sockets Stream y Datagrama Ahora se nos presenta un problema, qué protocolo, o tipo de sockets, debemos usar - UDP o TCP? La decisión depende de la aplicación cliente/servidor que estemos escribiendo. Vamos a ver algunas diferencias entre los protocolos para ayudar en la decisión. En UDP, cada vez que se envía un datagrama, hay que enviar también el descriptor del socket local y la dirección del socket que va a recibir el datagrama, luego éstos son más grandes que los TCP. Como el protocolo TCP está orientado a conexión, tenemos que establecer esta conexión entre los dos sockets antes de nada, lo que implica un cierto tiempo empleado en el establecimiento de la conexión, que no existe en UDP. En UDP hay un límite de tamaño de los datagramas, establecido en 64 kilobytes, que se pueden enviar a una localización determinada, mientras que TCP no tiene límite; una vez que se ha establecido la conexión, el par de sockets funciona como los streams: todos los datos se leen inmediatamente, en el mismo orden en que se van recibiendo. UDP es un protocolo desordenado, no garantiza que los datagramas que se hayan enviado sean recibidos en el mismo orden por el socket de recepción. Al contrario, TCP es un protocolo ordenado, garantiza que todos los paquetes que se envíen serán recibidos en el socket destino en el mismo orden en que se han enviado. M.E Carmen Cerón G Programación Concurrente 112

5 Los datagramas son bloques de información del tipo lanzar y olvidar. Para la mayoría de los programas que utilicen la red, el usar un flujo TCP en vez de un datagrama UDP es más sencillo y hay menos posibilidades de tener problemas. Sin embargo, cuando se requiere un rendimiento óptimo, y está justificado el tiempo adicional que supone realizar la verificación de los datos, los datagramas son un mecanismo realmente útil. En resumen, TCP parece más indicado para la implementación de servicios de red como un control remoto (rlogin, telnet) y transmisión de ficheros (ftp); que necesitan transmitir datos de longitud indefinida. UDP es menos complejo y tiene una menor sobrecarga sobre la conexión; esto hace que sea el indicado en la implementación de aplicaciones cliente/servidor en sistemas distribuidos montados sobre redes de área local. B. Ejemplo de uso Para comprender el funcionamiento de los sockets no hay nada mejor que estudiar un ejemplo. El que a continuación se presenta establece un pequeño diálogo entre un programa servidor y sus clientes, que intercambiarán cadenas de información. a.) Programa Cliente El programa cliente se conecta a un servidor indicando el nombre de la máquina y el número puerto (tipo de servicio que solicita) en el que el servidor está instalado. Una vez conectado, lee una cadena del servidor y la escribe en la pantalla: import java.io.*; import java.net.*; class Cliente static final String HOST = "localhost"; static final int PUERTO=5000; public Cliente( ) try Socket skcliente = new Socket( HOST, Puerto ); InputStream aux = skcliente.getinputstream(); DataInputStream flujo = new DataInputStream( aux ); System.out.println( flujo.readutf() ); skcliente.close(); M.E Carmen Cerón G Programación Concurrente 113

6 catch( Exception e ) System.out.println( e.getmessage() ); public static void main( String[] arg ) new Cliente(); En primer lugar se crea el socket denominado skcliente, al que se le especifican el nombre de host (HOST) y el número de puerto (PORT) en este ejemplo constantes. Luego se asocia el flujo de datos de dicho socket (obtenido mediante getinputstream)), que es asociado a un flujo (flujo) DataInputStream de lectura secuencial. De dicho flujo capturamos una cadena ( readutf() ), y la imprimimos por pantalla (System.out). El socket se cierra, una vez finalizadas las operaciones, mediante el método close(). Debe observarse que se realiza una gestión de excepción para capturar los posibles fallos tanto de los flujos de datos como del socket. b.) Programa Servidor El programa servidor se instala en un puerto determinado, a la espera de conexiones, a las que tratará mediante un segundo socket. Cada vez que se presenta un cliente, le saluda con una frase "Hola cliente N". Este servidor sólo atenderá hasta tres clientes, y después finalizará su ejecución, pero es habitual utilizar bucles infinitos ( while(true) ) en los servidores, para que atiendan llamadas continuamente. Tras atender cuatro clientes, el servidor deja de ofrecer su servicio: import java.io.* ; import java.net.* ; class Servidor static final int PUERTO=5000; M.E Carmen Cerón G Programación Concurrente 114

7 public Servidor( ) try ServerSocket skservidor = new ServerSocket( PUERTO ); System.out.println("Escucho el puerto " + PUERTO ); for ( int numcli = 0; numcli < 3; numcli++; ) Socket skcliente = skservidor.accept(); // Crea objeto System.out.println("Sirvo al cliente " + numcli); OutputStream aux = skcliente.getoutputstream(); DataOutputStream flujo= new DataOutputStream( aux ); flujo.writeutf( "Hola cliente " + numcli ); skcliente.close(); System.out.println("Demasiados clientes por hoy"); catch( Exception e ) System.out.println( e.getmessage() ); public static void main( String[] arg ) new Servidor(); Utiliza un objeto de la clase ServerSocket (skservidor), que sirve para esperar las conexiones en un puerto determinado (PUERTO), y un objeto de la clase Socket (skcliente) que sirve para gestionar una conexión con cada cliente. M.E Carmen Cerón G Programación Concurrente 115

8 Mediante un bucle for y la variable numcli se restringe el número de clientes a tres, con lo que cada vez que en el puerto de este servidor aparezca un cliente, se atiende y se incrementa el contador. Para atender a los clientes se utiliza la primitiva accept() de la clase ServerSocket, que es una rutina que crea un nuevo Socket (skcliente) para atender a un cliente que se ha conectado a ese servidor. Se asocia al socket creado (skcliente) un flujo (flujo) de salida DataOutputStream de escritura secuencial, en el que se escribe el mensaje a enviar al cliente. El tratamiento de las excepciones es muy reducido en nuestro ejemplo, tan solo se captura e imprime el mensaje que incluye la excepción mediante getmessage(). c.) Ejecución Aunque la ejecución de los sockets está diseñada para trabajar con ordenadores en red, en sistemas operativos multitarea (por ejemplo Windows y UNIX) se puede probar el correcto funcionamiento de un programa de sockets en una misma máquina. Para ellos se ha de colocar el servidor en una ventana, obteniendo lo siguiente: >java Servidor Escucho el puerto 5000 En otra ventana se lanza varias veces el programa cliente, obteniendo: >java Cliente Hola cliente 1 >java cliente Hola cliente 2 >java cliente Hola cliente 3 >java cliente connection refused: no further information Mientras tanto en la ventana del servidor se ha impreso: Sirvo al cliente 1 Sirvo al cliente 2 Sirvo al cliente 3 Demasiados clientes por hoy Cuando se lanza el cuarto de cliente, el servidor ya ha cortado la conexión, con lo que se lanza una excepción. Obsérvese que tanto el cliente como el servidor pueden leer o escribir del socket. Los mecanismos de comunicación pueden ser refinados cambiando la implementación de los sockets, mediante la utilización de las clases abstractas que el paquete java.net provee. Para el caso de CrearCliente necesitamos un servidor como Apache instalado en nuestra máquina que tenga la dirección localhost ( ) o cualquier dirección de Internet a la que tengamos acceso y que sirva páginas html. Para el caso de CrearServidor necesitamos un navegador en el cual visualizaremos lo que nos devuelve el servidor. M.E Carmen Cerón G Programación Concurrente 116

9 Método CrearCliente.- En el método CrearCliente creamos un socket que va a conectar con una dirección de Internet local ( ) y con index.html a través del puerto 80. A el socket se le especifican estos parámetros en el constructor. Una vez realizada la conexión obtenemos un DataOutputStream del socket con getoutputstream y escribimos nuestra petición que en nuestro caso es igual a la que realiza el Internet Explorer. En esa corriente de salida escribimos nuestros datos. Después obtenemos un DataInputStream con getinputstream y leemos lo que nos llega que puede ser el texto de una página html. Por último cerramos la conexión con close una vez que no hay más datos que leer. Podemos ver que la creación de un Socket es sencilla y que leer y escribir de un socket es como leer y escribir de un archivo. Método CrearServidor.- En este método vamos a crear un servidor sencillo que va atender los datos de un navegador tal como Internet Explorer. Este servidor va a servir por la dirección que es la de localhost, y por el puerto 80. Estas dos condiciones se especifican al crear el ServerSocket (Ojo con la dirección especificada ya que tiene que existir en la máquina). Una vez creado el ServerSocket se crea un bucle infinito en el cual el método accept espera hasta recibir una conexión. Este método al aceptar la conexión devuelve un Socket que es con el que vamos a realizar la conexión al cliente. Al igual que el método anterior obtenemos un DataInputStream con getinputstream del cual vamos a leer los datos desde el cliente. Los datos recibidos diferirán según el navegador utilizado pero serán parecidos a los que se envían en el ejemplo de CrearCliente. Para conectar con el navegador una vez ejecutado el ejemplo tenemos que introducir en él y recibiremos de vuelta el contenido del String respuesta. Como el navegador encuentra en la página html la referencia a una imagen gif, realizará una segunda petición pidiendo dicha imagen. 5.2 Ejemplos de Sockets import java.net.*; import java.io.*; import java.util.*; public class Comunicacion public void CrearCliente() Socket conexion=null; DataInputStream entrada=null; DataOutputStream salida=null; String cad=""; byte datosbytes[]=new byte[256]; M.E Carmen Cerón G Programación Concurrente 117

10 int leido=0; String peticion=""; try conexion=new Socket (InetAddress.getByName ("http://localhost/index.html"), 80); System.out.println("Conectando"); /*Enviamos lo que envía el navegador Internet Explorer al pedir una página*/ peticion="get /index.html HTTP/1.1\n"; peticion+="accept: */*\n"; peticion+="accept-language: es\n"; peticion+="accept-encoding: gzip, deflate\n"; peticion+="user-agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)\n"; peticion+="host: \n"; peticion+="connection: Keep-Alive\n\n"; salida=new DataOutputStream(conexion.getOutputStream()); salida.write(peticion.getbytes()); //Vemos lo que nos envía el Servidor entrada=new DataInputStream(conexion.getInputStream()); try while ((leido=entrada.read(datosbytes,0,256))!=1) if (leido>0) System.out.println (new String(datosBytes,0,(leido-1))); catch (EOFException e) conexion.close(); catch (IOException e) System.out.println(e.toString()); System.out.println("Error al conectar"); public void CrearServidor() //Socket conexion; ServerSocket sck; BufferedReader datos; InputStream Entradadatos; String texto=""; int cliente=0; int leido=0; M.E Carmen Cerón G Programación Concurrente 118

11 try //Creamos un servidor ServerSocket conexion=new ServerSocket(80,2,InetAddress.getByName(" ")); DataInputStream entrada=null; DataOutputStream salida=null; String cad="",body="",respuesta=""; byte bytedata[]=new byte[256]; while (true) ++cliente; Socket conex=conexion.accept(); entrada=new DataInputStream(conex.getInputStream()); System.out.println("Cliente num "+Integer.toString(cliente)); InetAddress direc=conex.getinetaddress(); System.out.println ("Dirección de llamada"+direc.gethostaddress()); cad=""; leido=entrada.read(bytedata); if (leido>0) cad=new String(bytedata,0,(leido-1)); //Sacamos lo que hemos recibido desde el cliente System.out.println("Recibido desde cliente"); System.out.println(cad); salida=new DataOutputStream(conex.getOutputStream()); body+="<html>\n"; body+="<body>\n"; body+="<h1>hola que tal!</h1>\n"; body+="<image src='barra.gif'>\n"; body+="</body>\n"; body+="</html>\n"; if (cad.indexof("barra.gif")>=0) respuesta="http/ OK\n"; respuesta+="date: Mon, 5 Nov :59:59GMT\n"; respuesta+="content-type: image/gif\n"; respuesta+="content-length: 112\n\n"; //Hay que añadir la imagen //Escribimos la respuesta al cliente salida.write(respuesta.getbytes()); salida.flush(); try FileInputStream imagen=new FileInputStream("barra.gif"); while((leido=imagen.read(bytedata,0,256))!=-1) salida.write(bytedata,0,leido); M.E Carmen Cerón G Programación Concurrente 119

12 salida.flush(); catch (IOException e) else if (cad.indexof("hola.html")>=0) respuesta="http/ OK\n"; respuesta+="date: Mon, 5 Nov :59:59 GMT\n"; respuesta+="content-type: text/html\n"; respuesta+="content- Length:"+Integer.toString(body.length())+"\n\n"; respuesta+=body; //Escribimos la respuesta al cliente salida.writebytes(respuesta); salida.flush(); else respuesta="http/ Error no encontrado\n"; respuesta+="date: Mon, 5 Nov :59:59 GMT\n"; respuesta+="content-type: text/html\n"; respuesta+="content- Length:"+Integer.toString( body.length())+"\n\n"; respuesta+="no se ha encontrado el documento"; //Escribimos la respuesta al cliente salida.writebytes(respuesta); salida.flush(); //Cerramos el Socket conex.close(); catch (IOException e) System.out.println(e.toString()); System.out.println("Error al conectar"); public static void main(string[] args) Comunicacion Comuc =new Comunicacion(); Comuc.CrearServidor(); //Comuc.CrearCliente(); //Comuc.pruebaURL(); M.E Carmen Cerón G Programación Concurrente 120

13 Los ejemplos demuestran a pesar de su sencillez la potencia del Java y la sencillez de sus clases. El ejemplo del servidor se puede perfeccionar para que acepte varias conexiones simultáneas a través de varios procesos o para que responda diferentes formas diferentes según la información pedida, etc. A partir del ejemplo expuesto debe ser el lector el que desarrolle los ejemplos y que vea cuales son los métodos de las clases y como se comportan en realidad. También se recomienda ver la clase URL que permite la conexión a través de diferentes protocolos (http, ftp, etc) especificando la dirección URL de un recurso. What Is a Socket? Normally, a server runs on a specific computer and has a socket that is bound to a specific port number. The server just waits, listening to the socket for a client to make a connection request. On the client-side: The client knows the hostname of the machine on which the server is running and the port number to which the server is connected. To make a connection request, the client tries to rendezvous with the server on the server's machine and port. If everything goes well, the server accepts the connection. Upon acceptance, the server gets a new socket bound to a different port. It needs a new socket (and consequently a different port number) so that it can continue to listen to the original socket for connection requests while tending to the needs of the connected client. M.E Carmen Cerón G Programación Concurrente 121

14 On the client side, if the connection is accepted, a socket is successfully created and the client can use the socket to communicate with the server. Note that the socket on the client side is not bound to the port number used to rendezvous with the server. Rather, the client is assigned a port number local to the machine on which the client is running. The client and server can now communicate by writing to or reading from their sockets. Definition: A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent. The java.net package in the Java platform provides a class, Socket, that implements one side of a two-way connection between your Java program and another program on the network. The Socket class sits on top of a platform-dependent implementation, hiding the details of any particular system from your Java program. By using the java.net.socket class instead of relying on native code, your Java programs can communicate over the network in a platform-independent fashion. Additionally, java.net includes the ServerSocket class, which implements a socket that servers can use to listen for and accept connections to clients. This lesson shows you how to use the Socket and ServerSocket classes. If you are trying to connect to the Web, the URL class and related classes (URLConnection, URLEncoder) are probably more appropriate than the socket classes. In fact, URLs are a relatively high-level connection to the Web and use sockets as part of the underlying implementation. See Working with URLs for information about connecting to the Web via URLs. M.E Carmen Cerón G Programación Concurrente 122

15 BIBLIOGRAFIA 1. J.E. Pérez Martínez "Programación Concurrente" 2ª Edición Ed Rueda (1990). 2. J.T. Palma Méndez, M.C. Garrido, F. Sánchez Figeroa y A. Quesada "Programación Concurrente" Ed. Thomson (2003). 3. "Programación Concurrente en Java TM" Ed. Addison-Wesley (2000). URL S: M.E Carmen Cerón G Programación Concurrente 123

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

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

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

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

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

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

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 5: Servidor web concurrente en Java

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

Más detalles

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

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

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

Juan de Dios Murillo Morera e-mail: jmurillo@una.ac.cr Santiago Caamaño Polini e-mail: scaamano@costarricense.cr INTRODUCCIÓN

Juan de Dios Murillo Morera e-mail: jmurillo@una.ac.cr Santiago Caamaño Polini e-mail: scaamano@costarricense.cr INTRODUCCIÓN UNICIENCIA 24 pp. 83-89 2010 IMPLEMENTACIÓN DE UN SERVIDOR FTP UTILIZANDO EL MODELO CLIENTE/SERVIDOR MEDIANTE EL USO DE SOCKETS EN LENGUAJE C UNIX CON EL FIN DE MEJORAR LOS TIEMPOS DE RESPUESTA EN LA RED

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

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

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

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

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

Más detalles

Programación para redes con Java

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

Más detalles

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

Justamente, una de las formas de crear un objeto de la clase URL permite especificar también el puerto: Los Sockets Los sockets (zócalos, referido a los enchufes de conexión de cables) son mecanismos de comunicación entre programas a través de una red TCP/IP. De hecho, al establecer una conexión via Internet

Más detalles

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

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

Más detalles

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

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

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

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

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

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

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

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

ARQUITECTURAS CLIENTE/SERVIDOR

ARQUITECTURAS CLIENTE/SERVIDOR Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza 1 ARQUITECTURAS CLIENTE/SERVIDOR Conceptos básicos Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza 2 Conceptos básicos

Más detalles

Clases Java para comunicaciones en red

Clases Java para comunicaciones en red Clases Java para comunicaciones en red 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

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

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

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

Arquitecturas cliente/servidor

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

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

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

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

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

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

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

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

JAVA RMI (REMOTE METHOD INVOCATION)

JAVA RMI (REMOTE METHOD INVOCATION) JAVA RMI (REMOTE METHOD INVOCATION) RMI RMI (Remote Method Invocation) Mecanismo RPC de Mecanismo mediante el cual los procesos cliente y servidor en una aplicación distribuida se comunican Una aplicación

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

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

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS 26/05/2013 eduar14_cr@hotmail.com cilred_tlapa@hotmail.com LLAMADAS AL SISTEMA Las llamadas al sistema proporcionan la interfaz entre un proceso y el sistema operativo,

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

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

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

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

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

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. http://www.icc.uji.es. CAPÍTULO 8: El nivel de transporte en Internet

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. http://www.icc.uji.es. CAPÍTULO 8: El nivel de transporte en Internet Redes (IS20) Ingeniería Técnica en Informática de Sistemas http://www.icc.uji.es CAPÍTULO 8: El nivel de transporte en Internet ÍNDICE 1. Introducción Curso 2002-2003 - Redes (IS20) -Capítulo 8 1 1. Introducción

Más detalles

COMUNICACIÓN ENTRE PROCESOS SOCKETS

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

Más detalles

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

COMU ICACIO ES E U IX CO JAVA

COMU ICACIO ES E U IX CO JAVA COMU ICACIO ES E U IX CO JAVA El sistema de Entrada/Salida de Unix sigue el paradigma que normalmente se designa como Abrir-Leer-Escribir-Cerrar. Antes de que un proceso de usuario pueda realizar operaciones

Más detalles

Laboratorio de Fundamentos de Sistemas Distribuidos. Chat en Java - 1

Laboratorio de Fundamentos de Sistemas Distribuidos. Chat en Java - 1 Laboratorio de Fundamentos de Sistemas Distribuidos Chat en Java - 1 Tipo de entrega: por grupos de prácticas Fecha límite: sesiones de laboratorio Lugar: Atenea (nou campus) Objetivos del proyecto: Crear

Más detalles

Generar Temas de Colores y Cambiarlos Dinámicamente en ZK

Generar Temas de Colores y Cambiarlos Dinámicamente en ZK Generar Temas de Colores y Cambiarlos Dinámicamente en ZK Hola, mi nombre es Manuel Martínez y soy de Colombia. Voy a explicarles desde cómo construir temas de colores para las interfaces graficas de ZK

Más detalles

Características generales del lenguaje Java. María a Consuelo Franky

Características generales del lenguaje Java. María a Consuelo Franky Características generales del lenguaje Java María a Consuelo Franky 1 Temario ❶ Historia del desarrollo de Java ❷ Ventajas sobre otros lenguajes O.O. ❸ applets vs. aplicaciones ❹ Vistazo global a las características

Más detalles

Clase 23 FTP. Telnet. Ejemplos Tema 6.- Nivel de aplicación en Internet

Clase 23 FTP. Telnet. Ejemplos Tema 6.- Nivel de aplicación en Internet Clase 23 FTP. Telnet. Ejemplos 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 1.-

Más detalles

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

1. Aplicaciones del J2SE SDK1.4.2 de Sun. Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura

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

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java Qué es? Introducción a es Un lenguaje de programación Un entorno de desarrollo Un entorno de ejecución de aplicaciones Un entorno de despliegue de aplicaciones Utilizado para desarrollar, tanto applets

Más detalles

Introducción a la Programación en Java. Page 1

Introducción a la Programación en Java. Page 1 Introducción a la Programación en Java Page 1 Qué es Java? Java es un lenguaje de programación de propósito general, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias

Más detalles

Maestría en Ciencias de la Computación

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

Más detalles

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera

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

Entrada y Salida con Java

Entrada y Salida con Java Entrada y Salida con Java Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid E/S con flujos (streams) En Java

Más detalles

Temario Iniciación a Java J2SE para web

Temario Iniciación a Java J2SE para web Temario Iniciación a Java J2SE para web 1 Introducción al entorno de Java 1 Qué es un programa? T 2 Los lenguajes de programación T 3 Qué es Java? T 4 Origen de Java T 5 Verdadero o falso vf 6 Características

Más detalles

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

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

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

Más detalles

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

JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005

JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005 JAVA - Serializacíon / RMI (C) Philippe Roose - 2004, 2005 Serializar objetos- concepto Desde el JDK 1.1 Serializar objetos permite de escribir un objeto en un fichero como un flujo de octets (archivo

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

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

DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS

DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS UNIDAD IZTAPALAPA DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERIA DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS PARA OBTENER EL TITULO DE LICENCIADO EN COMPUTACION PRESENTAN: CRISÓSTOMO

Más detalles

Comunicación entre procesos: sockets tcp. Jorge Iván Meza Martínez jimezam@gmail.com

Comunicación entre procesos: sockets tcp. Jorge Iván Meza Martínez jimezam@gmail.com Comunicación entre procesos: sockets tcp Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/30 Sockets con Transmission

Más detalles

RMI [Remote Method Invocation]

RMI [Remote Method Invocation] RMI [Remote Method Invocation] Cuando utilizamos sockets, hemos de preocuparnos de cómo se transmiten físicamente los datos entre los extremos de una conexión (a nivel de bytes, ya que usamos los streams

Más detalles

Arquitectura de Redes y Servicios de Telecomunicación

Arquitectura de Redes y Servicios de Telecomunicación Práctica 3 Arquitectura de Redes y Servicios de Telecomunicación Programación cliente/servidor: Servicio de echo. Desarrollo de un cliente y un servidor del servicio de echo. Objetivos La programación

Más detalles

Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu)

Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu) Devoluciones de llamada en RMI (Callbacks) Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu) Devolución de llamadas, introducción Cliente-servidor clásico servidorpasivo Tipo pull.

Más detalles

Soporte a Desarrolladores. Resolucionando Problemas Comunes de Conectividad

Soporte a Desarrolladores. Resolucionando Problemas Comunes de Conectividad Soporte a Desarrolladores Resolucionando Problemas Comunes de Conectividad Table of Contents Introducción... 3 Causas de no Conexión de Datos... 3 1. Apovisionamiento adecuada de SIM... 3 2. IP del Dispositivo...

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

TEMA: PROTOCOLOS TCP/IP

TEMA: PROTOCOLOS TCP/IP TEMA: PROTOCOLOS TCP/IP HISTORIA: El Protocolo de Internet (IP) y el Protocolo de Transmisión (TCP), fueron desarrollados inicialmente en 1973 por el informático estadounidense Vinton Cerf como parte de

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Sistemas Distribuidos ITInformática (UVA) César Llamas Bello - Febrero 2003

Sistemas Distribuidos ITInformática (UVA) César Llamas Bello - Febrero 2003 Comunicación entre procesos Sistemas Distribuidos ITInformática (UVA) César Llamas Bello - Febrero 2003 Indice Interfaz de programación para protocolos de Internet Representación externa de datos y empaquetado

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5046 Bases de Datos PRÁCTICA No. LABORATORIO DE Bases de Datos DURACIÓN (HORA 12 NOMBRE DE LA PRÁCTICA Aplicaciones Web con SQL

Más detalles

Servicios clásicos de Internet

Servicios clásicos de Internet 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

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

TELEPROCESO Y SISTEMAS DISTRIBUIDOS Universidad Nacional del Nordeste TELEPROCESO Y SISTEMAS DISTRIBUIDOS La Interfaz Socket Lic. Vanesa S. Roffé Año 2009 Introducción - Origen de la INTERFAZ SOCKET La Interfaz Socket es una API para redes

Más detalles

public static void main(string[ ] args) { Numero f1 = new Numero(3); Numero f2 = new Numero(4); Numero f3 = f1; f1.value = f2.value; Numero f4 = null;

public static void main(string[ ] args) { Numero f1 = new Numero(3); Numero f2 = new Numero(4); Numero f3 = f1; f1.value = f2.value; Numero f4 = null; Examen de Programación Convocatoria de Septiembre 2005 Licenciatura de Lingüística y Nuevas Tecnologías Pregunta 1 Tenemos el siguiente programa: public class Numero { int value; public Numero(int i) {

Más detalles

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN Los protocolos de capa de aplicación de TCP/IP más conocidos son aquellos que proporcionan intercambio de la información

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

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

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.

Más detalles

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet Sockets (TCP) Tema 2- Nivel de aplicación en Internet Dr Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material parcialmente adaptado del libro Computer Networking:

Más detalles

Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets.

Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets. Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets. Prof. Ricardo Gonzalez Redes de Computadores Tema 3 1 1 Modelo Cliente-Servidor Dos

Más detalles

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12.

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12. Unidad 7 Servlets 7.1 Marco teórico Lo que permite que ordenadores remotos con procesadores y sistemas operativos diferentes se entiendan y en definitiva que Internet funcione como lo hace en la actualidad,

Más detalles

Capa de Aplicación (Parte 2 de 2)

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

Más detalles

Curso PHP. Servidores

Curso PHP. Servidores Curso PHP Servidores Indice: Instalando en windows Xampp Conceptos sobre servidor y cliente Instalando en Windows XP Vamos a la página : www.apachefriends.org Instalando en Windows XP Se van a la opción

Más detalles

Comunicacion en Java. Alejandro Escobar

Comunicacion en Java. Alejandro Escobar Comunicacion en Java Alejandro Escobar Introducción a las comunicaciones Modelo básico de red Imagen tomada de: http://java.sun.com/docs/books/tutorial/networking/overview/networking.html Normalmente programamos

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

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática

Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática Trabajo Práctico nro. 2: Comunicación Entre Procesos Tiempo Distribuido Objetivos del Práctico

Más detalles