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
Top Related