Está en la página 1de 6

Ingeniería de Sistemas

Redes Avanzadas – G 210


Fecha: 13/03/2021 Cód. Est:

Taller – Stack TCP/IP - Sockets

 Resultado de Aprendizaje

 Introducción

Un socket es un proceso o hilo existente en la máquina


cliente y en la máquina servidora, que sirve en última
instancia para que el programa servidor y el cliente lean y
escriban la información. Esta información será la
transmitida por las diferentes capas de red.

En el dominio internet (TCP/IP) los sockets permiten


acceder a los servicios del nivel de transporte tanto a
través de conexiones (TCP) como en modo sin conexión
(UDP). La forma habitual de implantar una aplicación
basada en sockets es utilizar el modelo cliente-servidor.

Un socket es conocido como un tipo de software que actúa como un punto final que funciona
estableciendo un enlace de comunicación de red bidireccional entre el extremo del servidor y el
programa receptor del cliente. También se le conoce como un punto final en un canal de comunicación
bidireccional. Un socket queda definido por un par de direcciones IP local y remota, un protocolo de
transporte y un par de números de puerto local y remoto. Para que dos programas puedan comunicarse
entre sí es necesario que se cumplan ciertos requisitos: Que un programa sea capaz de localizar al otro.

 Desarrollo
Clase Conexión, usando sockets en java
Crearemos una clase llamada Conexión en el paquete sockets que nos dará los datos que necesitaremos
en el cliente y en el servidor

La clase Conexión simplemente nos brinda los datos que necesitados, mensajes de entrada, flujo de
salida socket para el Cliente y socket para el servidor, estos últimos respectivamente inicializados desde
el constructor. Las clases Cliente y Servidor que veremos en breve van a heredar de la clase Conexión
para tener acceso a los atributos y a los sockets sin problemas. Ahora vemos nuestro servidor:

La clase Servidor
La clase Servidor básicamente estará a la espera de que un cliente se conecte a él usando el socket en el
puerto 1234, recibirá los mensajes, los mostrará y cerrará la conexión, es todo.
Tenemos en este código entonces al servidor que espera la conexión desde el cliente en el método
accept(), una vez ésta sucede, envía un mensaje de confirmación con writeUTF("mensaje"), lee todos los
mensajes enviados por el cliente con readLine() y cierra la conexión con el método close(). Veamos
ahora la clase Cliente
La clase Cliente
La clase Cliente, establecerá la conexión con el servidor usando un socket en localhost y el puerto 1234,
una vez establece la conexión escribe dos mensajes en el servidor usando un ciclo for y cierra la
conexión.

Vemos entonces que el cliente obtiene el flujo de salida de datos hacia el Servidor con el método
getOutputStream y lo usa para enviarle un par de mensajes con el método writeUTF("mensaje..."),
finalmente cierra la conexión con close(). Notar que si se desea enviar más de dos mensajes bastará con
cambiar el límite superior del ciclo for i < 100 por ejemplo.

a continuación pondré los códigos para los respectivos main que harán uso del servidor y del cliente.
Código para usar el servidor con Sockets en Java

Código para usar el cliente con Sockets en Java


 Reflexión del taller

Los sockets son un mecanismo que nos permite establecer un enlace entre dos programas que se
ejecutan independientes el uno del otro (generalmente un programa cliente y un programa servidor)
Java por medio de la librería java.net nos provee dos clases: Socket para implementar la conexión desde
el lado del cliente y ServerSocket que nos permitirá manipular la conexión desde el lado del servidor.
Además, sockets son un mecanismo muy popular en la creación de sistemas de chat y comunicación.
Con el anterior taller , aprendimos como se conecta un servidor y un cliente y la manera en que los
sockets provee de las funciones necesarias para una comunicación ent5re dos dispositivos.

 Referencias bibliográficas

Learn-us-east-1-prod-fleet02-xythos.content.blackboardcdn.com. 2021. [online] Available at: <https://learn-us-


east-1-prod-fleet02-xythos.content.blackboardcdn.com/5c12b7815ff3c/5986130?X-Blackboard-
Expiration=1616263200000&X-Blackboard-
Signature=E9GnA1%2BIYH295XyyWballSL4ko7z3c2xhHL586bQjUk%3D&X-Blackboard-Client-
Id=310727&response-cache-control=private%2C%20max-age%3D21600&response-content-
disposition=inline%3B%20filename%2A%3DUTF-8%27%27Lab%2520-
%2520Observing%2520DNS%2520Resolution.pdf&response-content-type=application%2Fpdf&X-Amz-
Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210320T120000Z&X-Amz-SignedHeaders=host&X-Amz-
Expires=21600&X-Amz-Credential=AKIAZH6WM4PL5SJBSTP6%2F20210320%2Fus-east-
1%2Fs3%2Faws4_request&X-Amz-
Signature=4ce46b081f6e47d3468ebc150a4a861e3d84ca594c3d85b98bfa3ca7b397d445> [Accessed 20 March
2021].

También podría gustarte