1.3Sockets java

download 1.3Sockets java

of 14

Transcript of 1.3Sockets java

  • 7/31/2019 1.3Sockets java

    1/14

    14/08/20

    Programacin Distribuida

    Mnica Trujillo Ramirez

    SOCKET EN JAVA

    Sockets

    2

    Los sockets son un sistema de comunicacin entre procesos de

    diferentes mquinas de una red. Ms exactamente,

    un socket es un punto de comunicacin por el cual

    un proceso puede emitir o recibir informacin.

    Mnica Trujillo Ramirez

  • 7/31/2019 1.3Sockets java

    2/14

    14/08/20

    Conexin Socket

    3 Mnica Trujillo Ramirez

    Funcionamiento Socket

    Mnica Trujillo Ramirez4

  • 7/31/2019 1.3Sockets java

    3/14

    14/08/20

    Conexin Socket

    5

    Para iniciar una sesin TCP se requiere un servidor y un cliente.

    1. El servidor est configurado para escuchar en un puerto determinado.

    2. El servidor espera y no hace nada hasta que un cliente intenta conectar esepuerto.

    3. El cliente realiza peticin de conexin indicando la ip servidor y el puertode escucha.

    4. Se establece la conexin entre cliente y servidor.a) Mediante la instancia de la clase Socket, tanto el cliente como el servidor se

    obtiene un flujo de entrada y un flujo de salida de datos; mediante las cualesse realizara la comunicacin.

    Mnica Trujillo Ramirez

    Debe estar en ejecucin

    Espera a que algn cliente se conecte

    Se compone de dos clases:

    *Servidor

    *hilocliente

    PROGRAMA SERVIDOR

  • 7/31/2019 1.3Sockets java

    4/14

    14/08/20

    Clase Servidor

    7

    Creamos la clase Servidor, encargada:

    Escuchar las peticiones de conexin de los clientes.

    Aceptar las conexiones de peticin.

    Crear un hilo de conexin por cada cliente.

    Mnica Trujillo Ramirez

    Clase Servidor

    8

    Importamos los paquetes:

    Java.net es un paquete que permite realizar conexiones ytransacciones a travs de la red

    Mnica Trujillo Ramirez

  • 7/31/2019 1.3Sockets java

    5/14

    14/08/20

    Clase Servidor

    9

    SocketServer: Clase que sirve para atender peticiones deconexiones, lo cual es til a la hora de crear un servidor.Como veremos ms adelante, en un servidor hay un bucleinfinito donde se llama al mtodo accept de la claseServerSocket quedando a la espera de aceptar una conexin,de tipo socket.

    Socket: Clase que implementa una de las partes de la

    comunicacin bidireccional entre un programa Java y otroprograma en la red.

    Mnica Trujillo Ramirez

    Clase Servidor

    10

    Definimos las variables que requiere la clase servidor

    Mnica Trujillo Ramirez

  • 7/31/2019 1.3Sockets java

    6/14

    14/08/20

    Clase Servidor

    11

    Se prepara el servidor para escuchar peticiones de conexin de losclientes, se aceptan las conexiones y se crea un hilo por cada cliente

    conectado, se enva como parmetro el socket del cliente

    Mnica Trujillo Ramirez

    Clase Servidor

    12

    Una vez finalizada la comunicacin, se deben cerrar las

    sesiones del socket cliente y socket servidor, creamos un

    mtodo encargado de ejecutar esta accin

    Mnica Trujillo Ramirez

  • 7/31/2019 1.3Sockets java

    7/14

    14/08/20

    Clase HiloCliente

    Mnica Trujillo Ramirez13

    Creamos la clase HiloCliente, encargada:

    Recibir datos del cliente.

    Enviar Datos al cliente

    Clase HiloCliente

    Mnica Trujillo Ramirez14

    DataInputStream: Clase que permite leer cualquiera de las

    variables de tipo nativo, como floats, ints o chars.

    DataOutputStream: Clase que permite escribir cualquiera de

    las variables de tipo nativo, como floats, ints o chars.

  • 7/31/2019 1.3Sockets java

    8/14

  • 7/31/2019 1.3Sockets java

    9/14

    14/08/20

    Clase HiloCliente

    Mnica Trujillo Ramirez17

    En el mtodo constructor, recibimos el socket a gestionar,enviamos un mensaje de control al cliente y mostramos la IP

    del cliente que se conecto

    Clase HiloCliente

    Mnica Trujillo Ramirez18

    En el mtodo run(), nos encargamos de escuchar y mostrar los

    mensajes que el cliente esta enviando al servidor

  • 7/31/2019 1.3Sockets java

    10/14

    14/08/20

    Clase Main

    Mnica Trujillo Ramirez19

    Cuando crea un socket, establece la

    conexin con el servidor

    PROGRAMA CLIENTE

  • 7/31/2019 1.3Sockets java

    11/14

    14/08/20

    Clase Cliente

    21

    Creamos la clase Cliente encargada de:

    Iniciar la conexin con el servidor

    Enviar y leer mensajes al servidor

    Finalizar la sesin de comunicacin

    Mnica Trujillo Ramirez

    Clase Cliente

    22

    Importamos los paquetes:

    Java.net es un paquete que permite realizar conexiones ytransacciones a travs de la red

    Mnica Trujillo Ramirez

  • 7/31/2019 1.3Sockets java

    12/14

    14/08/20

    Clase Cliente

    23

    Definimos las variables que requiere la clase Cliente

    Mnica Trujillo Ramirez

    Clase Cliente

    24

    El skCliente realiza la peticin de conexin; luego se lee y

    muestra el dato recibido del servidor

    Mnica Trujillo Ramirez

  • 7/31/2019 1.3Sockets java

    13/14

    14/08/20

    Clase Cliente

    25

    Creamos un mtodo que permita enviar mensajes al servidor

    Mnica Trujillo Ramirez

    Clase Cliente

    26

    Creamos un mtodo que permita finalizar la sesin de

    comunicacin

    Mnica Trujillo Ramirez

  • 7/31/2019 1.3Sockets java

    14/14

    14/08/20

    Clase Main

    Mnica Trujillo Ramirez27