La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición.

Presentaciones similares


Presentación del tema: "NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición."— Transcripción de la presentación:

1 NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición e inserte su imagen. PROGRAMACIÓN CLIENTE/SERVIDOR JAVA SOCKETS M.C. ISHTAR GEMMA HERNÁNDEZ CALVO Basado en: Introducción Rápida a Java.net y Java.Nio Miguel Ángel ABián

2 Fundamentos de Redes

3 Familia de Protocolos TCP/IP

4 Familia de Protocolos

5 Capas de TCP/IP

6

7 Protocolo IP

8 Datagrama IP

9

10 Dirección IP

11 URL

12 Arquitectura Cliente/Servidor

13

14 Aplicaciones Cliente/Servidor

15

16

17

18 Puertos

19

20

21

22

23 Protocolos de Transporte

24 TCP

25

26 UDP

27

28 NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición e inserte su imagen. SOCKETS

29 Introducción 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.

30 Introducción 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 las primitivas se puede crear un sistema de diálogo muy completo.

31 Tipos de Sockets

32 Otra definición… En Thinking in Java 3rd Edition, Bruce Eckel describe los sockets de una forma visual: El socket es la abstracción de software usada para representar los terminales de una conexión entre dos máquinas. Para una conexión dada, hay un socket en cada máquina, y puedes imaginar un cable hipotético corriendo entre las dos máquinas con cada extremo del cable enchufado a un socket. Desde luego, el hardware físico y el cableado entre máquinas es completamente desconocido. El punto fundamental de la abstracción es que no necesitamos conocer más de lo necesario.

33 La abstracción del socket

34 Ubicación conceptual de los sockets

35 Comunicación mediante sockets

36 Comunicación cliente/servidor a través de sockets Los sockets son creados por el sistema operativo y ofrecen una interfaz de programación de aplicaciones (API) mediante la cual pueden las aplicaciones enviar mensajes a otras aplicaciones, ya sean locales o remotas. Las operaciones de los sockets (enviar, recibir, etc.) se implementan como llamadas al sistema operativo en todos los modernos SO; dicho de otra manera: los sockets forman parte del núcleo del SO. En lenguajes orientados a objetos como Java o C#, las clases de sockets se implementan sobre las funciones ofrecidas por el SO para sockets.

37 Comunicación mediante sockets incluyendo puertos

38 Problema…. Consideremos un servidor web (es decir, HTTP) que atiende simultáneamente a varios clientes por el puerto estándar (80). Los clientes usan el protocolo TCP (HTTP usa este protocolo por defecto). ¿Cómo puede el servidor saber a qué cliente corresponde cada petición?

39 Respuesta Un socket tiene una dirección. En ella se almacena un número de puerto, una dirección IP y un tipo de protocolo. La dirección del socket cliente almacena el número de puerto por el cual hace la petición, la dirección IP del ordenador y el tipo de protocolo (TCP, en este caso). La dirección del socket servidor almacena el número de puerto por el cual espera peticiones (80, en este caso), la dirección IP del ordenador y el tipo de protocolo (TCP, en este caso). Una conexión se caracteriza por dos direcciones de sockets: la del cliente y la del servidor

40 Estructura interna de una comunicación con sockets TCP

41 Sockets TCP y sockets UDP las diferencias entre las comunicaciones con sockets TCP y con sockets UDP resultan similares a las que existen entre llamar por teléfono y enviar una carta.

42 Sockets TCP y sockets UDP Cuando se llama por teléfono a alguien, el estado de la comunicación se conoce en todo momento: quien llama sabe si el teléfono está ocupado o no (en algunos casos, el destinatario de la llamada también sabe si tiene alguna llamada entrante); percibe cuándo puede comenzar la comunicación (cuando acaban los pitidos largos y suena una voz); sabe si se está dirigiendo a la persona deseada (salvo que lo engañen) y distingue cuándo la comunicación ha concluido o se ha interrumpido (cuando cesa la voz del interlocutor y se oyen unos pitidos breves).

43 Sockets TCP y sockets UDP Cuando se envía una carta, el remitente la introduce en un buzón y se olvida de ella durante un tiempo: ignora si llegará a su destino o si recibirá respuesta (la dirección puede no existir; el destinatario puede no vivir ya allí; la carta puede perderse en alguna oficina de correos con exceso de trabajo). Lo mismo ocurre en el protocolo UDP: un emisor de datagramas UDP desconoce si llegan o no a su destino.

44 Pasos para la comunicación entre sockets

45

46 Socket y ServerSocket

47 Resumen

48 NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición e inserte su imagen. EL PAQUETE java.net DE JAVA

49 Introducción

50 Jerarquía de clases de Java.net

51 Java.net

52 La clase java.net.ServerSocket

53 Las clases Socket y ServerSocket en funcionamiento

54 La clase ServerSocket

55

56 La clase java.net.InetAddress

57 Ejemplo InformarConexionUV.java DireccionLocal.java

58 Volviendo a ServerSocket Métodos más usados

59 Volviendo a ServerSocket

60

61

62

63 El método accept( ) en marcha

64 La clase java.net.Socket

65 Métodos más usados

66

67 Java.io

68 Ejemplos

69 Pasos para implementar un servidor

70 Pasos para implementar el cliente

71 Cierre de sockets

72 Ojo!!!

73 Cierre de sockets

74 Ejemplo: CHAT de Deitel: Servidor.java PruebaServidor.java Cliente.java PruebaCliente.java

75 Interacción entre cliente/servidor sin conexión mediante datagramas La transmisión sin conexión mediante datagramas es un proceso más parecido a la manera en que el correo se transporta mediante el servicio postal. Si un mensaje extenso no cabe en un sobre, usted lo divide en varias piezas separadas que coloca en sobres separados, numerados en forma secuencial. Cada una de las cartas se envía entonces por correo al mismo tiempo. Las cartas podrían llegar en orden, sin orden o tal vez no llegarían (aunque el último caso es raro, suele ocurrir).

76 La persona en el extremo receptor debe reensamblar las piezas del mensaje en orden secuencial, antes de tratar de interpretarlo. Si su mensaje es lo suficientemente pequeño como para caber en un sobre, no tiene que preocuparse por el problema de que el mensaje esté “fuera de secuencia”, pero aún existe la posibilidad de que su mensaje no llegue. Una diferencia entre los datagramas y el correo postal es que pueden llegar duplicados de datagramas al equipo receptor.

77 Un chat con Datagramas En el siguiente chat utilizamos datagramas para enviar paquetes de información mediante el Protocolo de datagramas de usuario (UDP) entre una aplicación cliente y una aplicación servidor. En la aplicación Cliente, el usuario escribe un mensaje en un campo de texto y oprime Intro. El programa convierte el mensaje en un arreglo byte y lo coloca en un paquete de datagramas que se envía al servidor. El Servidor recibe el paquete y muestra la información que contiene, después lo repite (echo) de vuelta al cliente. Cuando el cliente recibe el paquete, muestra la información que contiene.

78 Servidor.java PruebaServidor.java Cliente.java PruebaCliente.java

79 Reto: Un juego a mejorar ServidorTresEnRaya.java PruebaServidorTresEnRaya.java ClienteTresEnRaya.java PruebaClienteTresEnRaya.java

80


Descargar ppt "NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición."

Presentaciones similares


Anuncios Google