Está en la página 1de 4

Chat IP Mediante Sockets

Orellana Salinas Juan Diego, Guamán Carpio Alex Fabián


diego.orellana@ucuenca.edu.ec
alex.guaman@ucuenca.edu.ec
Facultad de Ingeniería de la Universidad de Cuenca
Cód. Postal: 010117

Resumen—En el presente documento


principalmente se dará a conocer una breve II. CONCEPTOS TEÓRICOS
introducción teórica acerca de los Sockets y su
respectivo funcionamiento, se procederá por medio ¿Qué es un Socket?
del conocimiento adquirido a realizar una aplicación
de chat por medio del lenguaje de programación java
en el entorno de desarrollo NetBeans, la aplicación Un socket es un punto de comunicación por el
cumplirá con el objetivo de interconectar una cual un proceso puede emitir o recibir
máquina con otra a través de un puerto y una información permitiendo así la conexión entre
dirección IP(correspondiente a las máquinas a dos programas que se ejecutan dentro de esa red.
conectar), finalmente se realizaran las pruebas por
medio de la ejecución de nuestra aplicación y el envío Cuando se declaran los sockets los destinos de
de los mensajes correspondientes. los mensajes se especifican como direcciones de
socket; cada dirección de socket es un
Palabras clave — Socket.
identificador de comunicación que consta de un
numero de puerto y una dirección de internet (IP)
I. INTRODUCCIÓN
Las operaciones de comunicación entre procesos
(IPC) se basan en pares de socket cada uno
Hoy en día todo el mundo se comunica a través perteneciente a un proceso de comunicación ya
de una red lo que hace muy importante el saber sea de emisor o de recepto. El IPC se realiza
cómo establecer una conexión básica entre dos intercambiando algunos datos mediante la
usuarios, en el presente documento se tratara transmisión de estos datos en un mensaje entre un
acerca de las comunicaciones específicamente socket en un proceso y otro socket en otro
por medio de Sockets, los sockets aparecieron proceso. Cuando se envían mensajes los
por primera vez a principio de los años 80 con el mensajes se ponen en cola en el socket emisor
sistema UNIX, proporcionando así un medio de hasta que el protocolo de red subyacente los haya
comunicación a distintos procesos y con la transmitido. Cuando llegan, los mensajes se
finalidad de establecer una comunicación entre ponen en cola en el socket receptor hasta que el
ellos. Los sockets tienen una función similar a la proceso de recepción realiza las llamadas
que tiene una comunicación por correo o teléfono necesarias para recibirlos.
ofreciendo dos puntos de contacto entre distintas
aplicaciones, la noción de dominio de un socket
permite definir el conjunto de sockets con los
cuales se puede establecer una comunicación por
medio de él.
El paquete java.net nos proporciona la clase
Socket la cual implementa una de las partes de la
comunicación bidireccional entre un programa
de java con otro que se encuentre en una misma
red.
Nuestro objetivo principal será conocer cómo
utilizar las clases Socket para establecer una
conexión mediante un puerto y una dirección IP
en una red LAN por la cual funcionará nuestra
aplicación de mensajería. Figura 1: Comunicación entre Sockets
Hay dos protocolos de comunicación que uno
puede usar para la programación de sockets
C. Desarrollo de la Práctica
Datagram Communication(comunicación de
datagramas) y Stream
Communication(comunicación de flujo). Realizaremos una aplicación en el entorno de
desarrollo de netbeans basándonos en el patrón
Comunicación de Datagramas: de programación modelo vista controlador
(MVC).
El protocolo de comunicación de datagramas,
conocido como UDP es un protocolo sin En el modelo generaremos una clase cliente
conexión, lo que significa que cada vez que se donde tendremos el host de la máquina y el
envían datagramas, también debe enviar el puerto de comunicación. El puerto lo
descriptor de socket local y la dirección de la estableceremos como 9999 dentro de la
toma receptor. Como puede ver, se deben enviar aplicación.
datos adicionales cada vez que se realiza una
comunicación.

Comunicación de flujo:

El protocolo de comunicación de flujo (TCP) a


diferencia de UDP, TCP es un protocolo
orientado a la conexión. Para hacer la
comunicación sobre el protocolo TCP, primero
debe establecerse una conexión entre el par de
sockets. Mientras uno de los sockets escucha una
solicitud de conexión, el otro solicita una
conexión. Una vez que se han conectado dos
sockets se puede usar para transmitir datos en
ambas direcciones.
Figura 3: Código de la clase cliente

En la vista realizamos nuestra interfaz gráfica


¿Qué es una dirección IP? con la que los clientes interactaurán para el chat,
la cual cuenta con un espacio donde pondrán sus
La dirección IP es un número que identifica, de nombres para que sepan quien envía el mensaje
manera lógica y jerárquica, a una interfaz en red (NICK) y otro en el que se establece la dirección
de un dispositivo que utilice un protocolo, que IP a la que quieren conectarse. Ademas tiene un
corresponde al nivel de red del modelo TCP/IP. cuadro de texto en el que se mostraran los
mensajes enviados como recibidos.
III. DESARROLLO Y por último un espacio en el que el cliente
A. Herramientas escribe el mensaje para enviar.
 NetbeansIDE 8.2
 1 Router
 2 computadoras
B. Diagrama

Figura 2: Diagrama de Funcionamiento Figura 4: Interfaz de usuario de la aplicación


En el controlador la parte que controla la
interacción del cliente a través de la interfaz con
el modelo, tenemos dentro una clase que se
encargara de revisar las peticiones de conexión a
la máquina.

Figura 8: Comunicación entre las máquinas

Figura 5: Código de la clase del controlador

Ahora para poner en ejecución la aplicación


contamos con las dos computadoras estas
conectadas a un router.

Figura 9: Vista de la aplicación desde el primer


computador

Figura 6: Computadoras conectadas al router

Revisamos la dirección IP de cada computador a


través del cmd o directamente desde el router
obtenemos la dirección de cada máquina.
Figura 10: Vista de la aplicación desde el primer
computador

IV. CONCLUSIONES
Figura 7: Obtención de direcciones IP
* La práctica fue exitosa se aprendieron los
Procedemos a correr el programa y las conceptos necesarios acerca de Sockets para
comunicamos entre sí usando sus direcciones establecer una comunicación básica entre 2
IP. dispositivos, la ejecución de la aplicación
generada fue exitosa y no mostro errores al
momento de establecer la comunicación entre
computadoras por medio de la red.
*Los sockets nos proporcionan una gran ventaja
ya que al usarlos se pueden generar chats donde
la respuesta entre los dispositivos conectados a
la red sea inmediata y no como las alojadas en
base de datos que ofrecen una respuesta mucho
más lenta.

*Los sockets solo pueden comunicarse con


Sockets de su mismo tipo y familia por lo que
debemos tener en claro a la hora de codificar una
transmisión.

*Los Sockets son una abstracción para poder


definir el punto final de una comunicación entre
interprocesos bidireccionales, siendo de varios
tipos y dependiendo del uso que se le quiera dar
se tiene que optar por cada uno de ellos.

*Con la aplicación de los Sockets podemos


construir nosotros mismos programas que nos
permitan establecer comunicaciones, y así poder
enviar distintos tipos de información.

V. REFERENCIAS BIBLIOGRÁFICAS

- Revista Linux Actual, Año 1 Numero


9. Tema “Programación de Sockets”
páginas 52 a 55

- Rubén Hernández, Matt Vince,


Sistemas Distribuidos Soporte De
Software, “Los Sockets”, octubre
15/2017, Obtenido de:
http://rubenhdezhdez5im8.blogspot.co
m/2017/10/los-sockets.html

- Dirección IP, Obtenido de:


https://es.wikipedia.org/wiki/Direcci%
C3%B3n_IP

- Internetworking with TCP/IP, volume


1, capitulo 5. Autor: D.E. Conner.

También podría gustarte