0% encontró este documento útil (0 votos)
8 vistas

Cliente Servidor

Este documento explica conceptos básicos sobre redes, protocolos de comunicación, arquitectura cliente-servidor y sockets. Luego describe la implementación de servidores y clientes en Java usando sockets, incluyendo los pasos para establecer conexiones, enviar y recibir datos.

Cargado por

Jhoan Franco
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas

Cliente Servidor

Este documento explica conceptos básicos sobre redes, protocolos de comunicación, arquitectura cliente-servidor y sockets. Luego describe la implementación de servidores y clientes en Java usando sockets, incluyendo los pasos para establecer conexiones, enviar y recibir datos.

Cargado por

Jhoan Franco
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 26

CLIENTE – SERVIDOR

Programación Interactiva
CONTENIDO
 Conceptos básicos
 Redes
 Protocolos de comunicación
 Cliente – Servidor
 Socket
 Java.Net
 Implementación de servidor en Java
 Implementación de cliente en Java
 Subprocesamiento múltiple

EISC
Universidad del Valle Slide 2
REDES
Es un conjunto de equipos informáticos y software conectados entre
sí por medio de dispositivos físicos que envían y reciben impulsos
eléctricos, ondas electromagnéticas o cualquier otro medio para el
transporte de datos, con la finalidad de compartir recursos,
información en la distancia y ofrecer servicios .

Para la comunicación se requiere de un conjunto de estándares, un


emisor, un mensaje, un medio y un receptor.

EISC
Universidad del Valle Slide 3
PROTOCOLOS DE COMUNICACIÓN

Para lograr la comunicación entre sistemas distintos en la


red se utilizan los protocolos TCP y UDP.

EISC
Universidad del Valle Slide 4
PROTOCOLOS DE COMUNICACIÓN

TCP (Transmission Control Protocol): Establece un


conducto de comunicación punto a punto entre dos
computadoras, cuando se requiere la transmisión de un
flujo de datos entre dos equipos, el protocolo TCP
establece un conducto exclusivo entre dichos equipos por
el cual los datos serán transmitidos y perdurará hasta que
la transmisión haya finalizado (protocolo orientado a
conexión). TCP garantiza que los datos enviados de un
extremo de la conexión lleguen al otro extremo y en el
mismo orden en que fueron enviados.

EISC
Universidad del Valle Slide 5
PROTOCOLOS DE COMUNICACIÓN

UDP (User Datagram Protocol): Trasmite paquetes individuales


de datos (datagramas) de un equipo a otro, sin garantías de su
llegada al destino, ni integridad de los datos, ni orden

UPD hace la transmisión de los datos sin establecer un conducto


de comunicación exclusiva.

Los protocolos TCP y UDP


utilizan puertos para dirigir los
datos de entrada a los
procesos particulares que se
están ejecutando en el pc

EISC
Universidad del Valle Slide 6
CLIENTE– SERVIDOR

Cliente/Servidor es una arquitectura distribuida que permite


a los usuarios finales obtener acceso a la información de
forma transparente en entornos multiplataforma.

En una relación cliente-servidor, el cliente solicita que se


realice cierta acción, y el servidor realiza la acción y
responde al cliente.
EISC
Universidad del Valle Slide 7
CLIENTE– SERVIDOR

El proceso del servidor actúa como un motor de software


que maneja recursos compartidos tales como: bases de
datos, impresoras, módems, etc, y maneja las funciones
relacionadas con las reglas del negocio. (back-end)

El proceso del cliente proporciona la interfaz entre el


usuario y el resto del sistema, se encarga de manejar
todas las funciones relacionadas con la manipulación y
despliegue de datos ( front-end)

Un cliente interactúa con el usuario, y un servidor


interactúa con los recursos compartidos.

EISC
Universidad del Valle Slide 8
SOCKET

Son mecanismos de comunicación entre programas a


través de una red TCP/IP.

Los sockets representan un punto final (extremo) en un


enlace de comunicación de dos vías entre dos programas
que se ejecutan en la red.

En Java, las clases Socket son utilizadas para representar


conexiones entre un programa cliente y otro programa
servidor.

Un programa puede leer de un socket o escribir en un


socket de una manera tan simple como leer o escribir en un
archivo.
EISC
Universidad del Valle Slide 9
JAVA.NET

En Java, las herramientas de red fundamentales se


declaran mediante clases e interfaces del paquete
java.net, mediante el cual Java ofrece comunicaciones
basadas en flujos que permiten a las aplicaciones ver
las redes como flujos de datos.

Las clases e interfaces del paquete java.net también


ofrecen comunicaciones basadas en paquetes, para
transmitir paquetes individuales de información; esto se
utiliza comúnmente para transmitir audio y video a través
de Internet.

EISC
Universidad del Valle Slide 10
JAVA.NET

EISC
Universidad del Valle Slide 11
CLIENTE-SERVIDOR CON SOCKET JAVA

El funcionamiento de una aplicación Java usando Socket es el


siguiente:

EISC
Universidad del Valle Slide 12
IMPLEMENTACIÓN DE SERVIDOR
Para establecer un servidor simple en Java se requieren cinco pasos.

 Paso 1: Crear un objeto ServerSocket,

ServerSocket servidor = new ServerSocket( numeroPuerto, longitudCola );

número de puerto: puerto TCP disponible en donde el servidor espera las


conexiones de los clientes.
longitud de la cola: máximo número de clientes que pueden esperar para
conectarse al servidor.

El número de puerto es utilizado por los clientes para localizar la aplicación


servidor en el equipo servidor, a esto se le conoce como punto de
negociación (handshake).

Los números de puerto pueden ser entre 0 y 65,535. Algunos sistemas


operativos reservan los números de puertos menores que 1024 para los
servicios del sistema (como los servidores de e-mail y WWW).

EISC
Universidad del Valle Slide 13
IMPLEMENTACIÓN DE SERVIDOR
 Paso 2: El servidor escucha indefinidamente (o bloquea) a espera de que
un cliente trate de conectarse. Para escuchar una conexión de un cliente, el
programa llama al método accept de ServerSocket, así:

Socket conexion = servidor.accept();

El objeto Socket permite al servidor interactuar con el cliente

 Paso 3: Obtener los objetos OutputStream e InputStream que permiten al


servidor comunicarse con el cliente, enviando y recibiendo bytes. El servidor
envía información al cliente mediante un objeto OutputStream y recibe
información del cliente mediante un objeto InputStream.

ObjectInputStream entrada = new ObjectInputStream


(conexion.getInputStream());
ObjectOutputStream salida = new ObjectOutputStream
(conexion.getOutputStream());

EISC
Universidad del Valle Slide 14
IMPLEMENTACIÓN DE SERVIDOR
 Paso 4: Es la fase de procesamiento, en la cual el servidor y el
cliente se comunican a través de los objetos InputStream y
OutputStream

 Paso 5: Cerrar la conexión al completarse la transmisión,


invocando al método close() de los flujos y del objeto Socket.

Con los sockets, la E/S de red es vista por los programas de Java como algo
similar a un archivo de E/S secuencial. Los sockets ocultan al programador
gran parte de la complejidad de la programación en red

EISC
Universidad del Valle Slide 15
IMPLEMENTACIÓN DE SERVIDOR

EISC
Universidad del Valle Slide 16
IMPLEMENTACIÓN DE SERVIDOR
Paso 2:

Paso 3:

EISC
Universidad del Valle Slide 17
IMPLEMENTACIÓN DE SERVIDOR
Paso 4 -1:

EISC
Universidad del Valle Slide 18
IMPLEMENTACIÓN DE SERVIDOR
Paso 4-2:

Paso 5:

EISC
Universidad del Valle Slide 19
IMPLEMENTACIÓN DE CLIENTE
Para establecer un cliente simple en Java se requieren cuatro pasos

 Paso 1: Crear un objeto Socket para conectarse al servidor

Socket conexion = new Socket( direccionServidor, puerto);

 Paso 2: Utilizar los métodos getInputStream y getOutputStream de la


clase Socket para obtener referencias a los objetos InputStream y
OutputStream de Socket.

 Paso 3: Es la fase de procesamiento, en la cual el servidor y el cliente se


comunican a través de los objetos InputStream y OutputStream

 Paso 4: Se cierra la conexión cuando se completa la transmisión.

EISC
Universidad del Valle Slide 20
IMPLEMENTACIÓN DE CLIENTE

EISC
Universidad del Valle Slide 21
IMPLEMENTACIÓN DE CLIENTE
Paso 1:

Paso 2:

EISC
Universidad del Valle Slide 22
IMPLEMENTACIÓN DE CLIENTE
Paso 3:

Paso 4:

EISC
Universidad del Valle Slide 23
IMPLEMENTACIÓN DE CLIENTE

EISC
Universidad del Valle Slide 24
SUBPROCESAMIENTO MÚLTIPLE

Mediante el subprocesamiento múltiple se pueden crear servidores


que administran muchas conexiones simultáneas con muchos
clientes.

EISC
Universidad del Valle Slide 25
SUBPROCESAMIENTO MÚLTIPLE

Cada vez que un cliente establece una conexión, el servidor toma el


Socket devuelto por el método acept() y crear un nuevo subproceso
que administra la E/S de red a través de ese objeto Socket y sigue a
la espera de nuevas conexiones.

while (true) {
Socket incoming = s.accept();
Thread t = new ThreadServerHandler(incoming);
t.start();
}

EISC
Universidad del Valle Slide 26

También podría gustarte