Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Taller de Procesamiento Distribuido.

1
Guía 2
Facultad: FIISI
Escuela: Informática
Curso: Taller de
Procesamiento Distribuido

Tema: Socket

Contenido

En esta guía se aborda la aplicación de los Socket como


middleware para la comunicación entre procesos de diferentes
máquinas.

Objetivos Específicos

 Conocer las características básicas de un Socket.


 Crear un Software.

Material y Equipo

 Guía No 2.
 Computadora con Netbeans.
 Compañero que cuente con un Smartphone y Computadora
con Netbeans.

Introducción Teórica

En la guía anterior se había explicado la importancia que


tiene los Middleware para la creación de Sistemas
Distribuidos, en esta guía se explicará la definición y
creación de un middleware con Socket.

Socket

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.

JAVA Socket

El paquete java.net de la plataforma Java proporciona una


clase Socket, la cual implementa una de las partes de la
2 Taller de Procesamiento Distribuido. Guía 2
comunicación bidireccional entre un programa Java y otro
programa en la red.

La clase Socket se sitúa en la parte más alta de una


implementación dependiente de la plataforma, ocultando los
detalles de cualquier sistema particular al programa Java.
Usando la clase java.net.Socket en lugar de utilizar código
nativo de la plataforma, los programas Java pueden
comunicarse a través de la red de una forma totalmente
independiente de la plataforma.

De forma adicional, java.net incluye la clase ServerSocket,


la cual implementa un socket el cual los servidores pueden
utilizar para escuchar y aceptar peticiones de conexión de
clientes.

Funcionamiento de JAVA Socket

Un Socket es una conexión entre dos hosts. Bajo esta


conexión, se pueden ejecutar las siguientes operaciones
básicas:

 Conectarse a una máquina remota;


 Enviar datos;
 Recibir datos;
 Cerrar una conexión;
 Escuchar datos entrantes;
 Aceptar conexiones de máquinas remotas.

La clase Socket

La clase java Socket, la cual es usada tanto por aplicaciones


cliente como aplicaciones servidor, tiene métodos que
Taller de Procesamiento Distribuido. 3
Guía 2
permiten implementar los cuatros primeras operaciones; las
restantes, son exclusivas de aplicaciones servidor. Las
aplicaciones servidor siempre esperan por aplicaciones
cliente que se conecten a ellas y son implementadas por la
clase ServerSocket.

Los programas java utilizan normalmente sockets cliente de la


siguiente manera:

a. El programa crea un nuevo socket utilizando el


constructor Socket ().
b. El socket intenta conectarse a un host remoto.
c. Una vez establecida la conexión, las máquinas local y
remota obtienen flujos de entrada y salida desde el
socket y usan estos flujos para intercambiar
información.
d. Cuando la transmisión de datos ha sido completada, una
de las dos partes, o ambas, cierran la conexión.

La clase ServerSocket

La clase ServerSocket contiene todo lo necesario para poder


escribir un servidor en Java. Por ejemplo:

 Tiene constructores que crean objetos ServerSocket


 Métodos que escuchan por conexiones en un puerto
específico.
 Métodos que retornan un objeto Socket (cliente) cuando
una conexión es realizada, de modo que se puedan
enviar y recibir datos.

El ciclo de vida de un servidor básico es el siguiente:

1. Un nuevo ServerSocket es creado utilizando un puerto


específico.
2. El ServerSocket escucha por intentos de conexión
entrantes usando su método accept().
3. accept() bloquea hasta que un cliente intenta hacer
una conexión, en ese caso se retorna un objeto Socket
conectándose el cliente y el servidor.
4. Dependiendo del tipo de servidor se invocan los
métodos getInputStream y getOutputStream.
5. El servidor y el cliente interactúan de acuerdo a un
protocolo preestablecido hasta que se debe cerrar la
conexión.
6. El servidor, el cliente, o ambos cierran la conexión
7. El servidor retorna al paso 2 y espera por la
4 Taller de Procesamiento Distribuido. Guía 2
siguiente conexión.

Procedimiento

Para entender mejor el funcionamiento, crearemos una


aplicación básica con java socket.

1. Crear una Aplicación de escritorio que permita poner


como servicio (publicar) un texto especifico

a) Crear un proyecto Java Application denominado


“MinimoServidor” y programamos lo siguiente:

- “Acept()” acepta la conexión dentro el objeto ss de la


instancia “serversocket” con el puerto 7777”.
- “Getinputstream” recibir del cliente los datos.

b) Crear un proyecto Java Application denominado


“MinimoCliente” y programamos lo siguiente:
Taller de Procesamiento Distribuido. 5
Guía 2

¡Para comprobar primero debemos ejecutar el Proyecto


“MinimoServidor” y luego “MinimoCliente” y se podrá
observar en la ventana Output del servidor el texto
“Hola desde el cliente!”

Análisis de Resultados

En el proyecto anterior se puede apreciar que hay una


comunicación entre el programa servidor “MinimoSevidor” y el
programa “MinimoCliente”, ¡ya que se pudo obtener el texto
“Se logró la comunicación con el Servidor!”. Observe que el
texto aparece en la ventana Output del proyecto
“MinimoCliente” (El consumidor).
6 Taller de Procesamiento Distribuido. Guía 2

Investigación Complementaria
1. Investigue que es una dirección IP y para qué sirve el
comando “ping”.
2. Modificar la aplicación para que se pueda ejecutar en 2
máquinas.
3. En el ejercicio de la guía se logró enviar información
del cliente al servidor, has una modificación del
proyecto de tal forma que el servidor envié información
al cliente.
4. Crear un proyecto que permita enviar el contenido de un
archivo alojada en una PC a otra.

Tarea domiciliaria

1. Implemente un servidor de “consulta de empleados”, el cual


recibirá código de empleado y retornará el nombre completo
obteniéndolo de una base de datos. Usted deberá definir la
estructura de la tabla y los registros de prueba respectivos

También podría gustarte