COMUNICACIÓN.
COMUNICACIÓN CON CLIENTE SERVIDOR
(SOCKETS).
Comunicación
• Los servicios de comunicación son típicos servicios
de red, pero en caso de los SOD(Sistema Operativo
Distribuido) son más especializados en ciertas
áreas.
• Los SOD utilizan «comunicación en grupo» esto
permite a todos los computadores del sistema
trabajar como un solo elemento de la red.
• SOD tienen comunicación por medio de SOCKETS
son paso de mensajes que permiten verificar cual
equipo está disponible.
Comunicación Cliente-Servidor
(Sockets).
• Cliente-Servidor es el modelo que
actualmente domina el ámbito de
comunicación, ya que descentraliza
los procesos y los recursos.
• Servicios como:
• - Ejecución de un programa.
• - Acceso a una Base de Datos.
• - Acceso a un dispositivo de
Hardware.
Comunicación Cliente-Servidor
(Sockets).
• Un socket es un punto final en una
comunicación bidireccional entre dos programas
que se ejecutan en una red.
• Permite a un programa enviar y recibir datos
desde otro programa a través de la red.
• Los sockets se utilizan comúnmente en la
comunicación cliente-servidor.
• Cada socket tiene una dirección IP y un número
de puerto, lo que lo hace único en la red.
Comunicación Cliente-Servidor
(Sockets).
• Para lograr tener un SOCKET para la comunicación e
intercambio de información se necesita:
1.- Que un programa sea capaz de localizar al otro.
2.- Que ambos programas sean capaces de
intercambiar información
Sockets en Java: Creación de
Sockets
En Java, se pueden crear dos tipos de sockets:
1. Socket: utilizado por el cliente para conectarse a un servidor.
2. ServerSocket: utilizado por el servidor para escuchar
conexiones entrantes.
• Ejemplo de código para crear un socket de cliente:
Socket cliente = new Socket("127.0.0.1", 5000);
• Ejemplo de código para crear un socket de servidor:
ServerSocket servidor = new ServerSocket(5000);
Socket socketServidor = servidor.accept();
Sockets en Java: Flujos de Entrada
y Salida
Los flujos de entrada y salida permiten la transmisión de datos a través de un socket.
• OutputStream se utiliza para enviar datos desde el cliente/servidor.
• InputStream se utiliza para recibir datos en el cliente/servidor.
• Ejemplo de envío de datos desde el servidor:
OutputStream salida = socketServidor.getOutputStream();
salida.write("Hola desde el servidor".getBytes());
• Ejemplo de recepción de datos en el cliente:
InputStream entrada = cliente.getInputStream();
byte[ ] buffer = new byte[1024];
entrada.read(buffer);
Modelo Cliente-Servidor:
Roles del Cliente y Servidor
• Cliente Programa que inicia la comunicación solicitando un servicio o recurso.
• Servidor: Programa que escucha las solicitudes del cliente y proporciona los
recursos o servicios solicitados.
• Ejemplo: Un navegador web (cliente) solicita una página HTML a un servidor
web.
• Ventajas del modelo cliente-servidor:
1. Centralización de recursos.
2. Escalabilidad.
3. Mantenimiento más sencillo.
Modelo Cliente-Servidor: Ciclo de
vida de una conexión
• • **Establecimiento de la conexión**:
• - El cliente inicia una conexión con el servidor.
• • **Intercambio de datos**:
• - Se envían y reciben datos a través de la conexión.
• • **Cierre de la conexión**:
• - Una vez finalizada la comunicación, la conexión se
cierra.
• • Ejemplo: Un cliente solicita datos de un servidor de base
de datos, los recibe, y luego cierra la conexión.
Ejemplos de Aplicaciones Cliente-
Servidor
• Navegadores Web y Servidores Web
- El navegador solicita páginas HTML, imágenes, etc., y el servidor
responde con los datos solicitados.
• Aplicaciones de Correo Electrónico
- Los clientes de correo (como Outlook) se conectan a servidores de
correo para enviar y recibir mensajes.
• Servicios de Mensajería Instantánea
- Aplicaciones como WhatsApp funcionan bajo el modelo cliente-servidor,
donde el cliente envía mensajes que el servidor reenvía al destinatario.
Comunicación Cliente-Servidor
(Sockets).
EJEMPLO
GRACIAS POR SU ATENCIÓN.