1. UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS
ESCUELA ACADÉMICO PROFESIONAL DE INFORMATICA
JUEGO “TRES EN RAYA” CON CHAT UTILIZANDO
SOCKETS
ALUMNOS:
• CASTILLO MEDINA, Yomaly
• RAMIREZ ANGULO, Carlos
• SANCHEZ GOMEZ, Willians
• ZERPA CASTRO, Patrick
PROFESOR:
• DIAZ PULIDO, Arturo
CURSO:
TELEPROCESAMIENTO
TRUJILLO – PERÚ
2018
2. INDICE:
Resumen:......................................................................................................................... 4
1. Realidad Problemática: .......................................................................................... 5
2. Ingeniería del proyecto:.......................................................................................... 5
2.1. Arquitectura de integración basada en socket:............................................. 5
2.2. Para una sola maquina:................................................................................... 6
2.2.1. El servidor para el chat:........................................................................... 6
2.2.2. El cliente para el chat:……………………………………………… 11
2.2.3. Prueba del código: .................................................................................. 13
2.3. Para Dos Maquinas: ...................................................................................... 14
3. Conclusiones:......................................................................................................... 19
4. Recomendaciones:................................................................................................. 20
5. Bibliografía:........................................................................................................... 20
3. FIGURAS:
2.1. Arquitectura basada en sockets: ............................................................................ 5
2.2. Variables para la comunicación, entrada y salida de datos: ............................... 6
2.3 Clase principal del servidor:................................................................................... 6
2.4. Método de la función del botón ENVIAR:……………………………………….7
2.5. Método de la función del botón JUGAR: ...……………………………………...7
2.6. Interfaz servidor: ………………………………………………………………… 7
2.7. Servidor del juego: .................................................................................................. 8
2.8. Conexión de los jugadores:..................................................................................... 9
2.9. Copiando el proyecto del juego en las librerías del proyecto de los chats: ...... 10
2.10. Interfaz del juego “Tres en Raya”:.................................................................... 10
2.11. Variables para la comunicación, entrada y salidas de datos: ………………. 11
2.12. Clase principal de cliente ……………………………………………………... 11
2.13. Método de la función del botón ENVIAR …………………………………… 12
2.14. Método de la función del botón JUGAR……………………………………... 12
2.15. Interfaz de cliente……………………………………………………………… 12
2.16. Prueba del código……………………………………………………………… 13
2.17. Vista del juego…………………………………………………………………. 13
2.18. Clase principal del Servidor …………………………………………………. 14
2.19. Método del botón ENVIAR …………………………………………………. 15
2.20. Método del botón JUGAR …………………………………………………... 15
2.21. Clase principal del cliente …………………………………………………… 16
2.22. Método del botón ENVIAR ………………………………………………… 16
2.23. Método del botón jugar ……………………………………………………… 16
2.24. Conexión del cliente del juego al servidor ………………………………….. 17
2.25. Vista de la Maquina servidor ………………………………………………... 17
2.26. Vista de la Maquina cliente ………………………………………………….. 18
2.27. Vista de las interfaces en las dos máquinas ………………………………… 18
2.28. Vista del juego en las dos máquinas ………………………………………… 19
4. Resumen:
El presente informe relata la implementación del juego “Tres en raya”
utilizando sockets. El cual pueda establecer una conexión de chats en una
misma máquina y una conexión de chats entre dos máquinas mediante uso
de una dirección IP. Así también, realizar un intercambio de mensajes entre
estas generando una comunicación entre adversarios. El lenguaje utilizado
para la implementación fue JAVA la cual es una herramienta muy útil para
lo que es programación con sockets. Por último, ya habiendo culminado el
proyecto y adquirido el conocimiento esperado se llegará a dar las
recomendaciones y conclusiones pertinentes.
Palabras claves: Comunicación, mensajes, juego, java, sockets
5. 1. Realidad Problemática:
En los últimos años se ha visto un gran avance en lo que es la implementación de
juegos entre computadores, para que exista esta competencia es necesario la
comunicación entre estos ordenadores, donde cada computador cuenta con un
software orientado a la comunicación entre estas. Para que este software sea
implementado se utiliza un mecanismo en específico, como por ejemplo, la
comunicación entre sockets.
Este mecanismo permite la comunicación bidireccional tanto entre procesos que
se ejecutan en una misma máquina como entre procesos lanzados en diferentes
máquinas utilizando direcciones IP.
En este proyecto se tiene como finalidad entender el funcionamiento de esto
mediante la implementación de un juego con chat basado en socket.
2. Ingeniería del proyecto:
2.1. Arquitectura de integración basada en socket:
Para lograr la comunicación y el intercambio de información entre los diferentes
componentes se implementan protocolos y arquitecturas de comunicación. Para
programar el funcionamiento de esta arquitectura se van a usar “sockets” en los procesos
que proporcionara una comunicación de dos vías.
En el caso del proyecto que se está realizando, se usa un servidor y un cliente
para establecer la comunicación, aunque podría ser de múltiples maneras. Por
ejemplo, podría usarse un servidor para tareas de procesamiento de imágenes y
otro para ejecute operaciones, pero en este caso nos estamos limitando
básicamente a establecer la comunicación y realizar un juego
Figura 1: Arquitectura basada en sockets
6. 2.2. Para una sola maquina:
2.2.1. El servidor para el chat:
Creamos las siguientes variables:
Figura 2: Variables para la comunicación, entrada y salida de datos
En el código de la clase principal del servidor hay poco que explicar puesto que
únicamente se crea el Server Socket y un bucle infinito en el que se esperan
conexiones por medio del puerto 1201, se crean nuevas variables de entrada y
salida (para el envío y recibimiento de mensajes) donde el servidor recibirá el
mensaje del cliente.
Figura 3: Clase principal del servidor
En el método de la función del botón ENVIAR, lo único que hace es enviar el
mensaje desde el servidor al cliente, como también copiar el mensaje enviado
por el servidor en el chat del mismo y borrar el texto del cuadro donde se escribe
(msg_texto).
7. Figura 4: Método de la función del botón ENVIAR
El método de la función del botón JUGAR, lo único que hace es llamar al
proyecto del juego, paquete “jugador”, interfaz “Main”, creando una nueva
clase y poniéndole visible para poder interactuar con el juego.
Figura 5: Método de la función del botón JUGAR
Interfaz Servidor:
Figura 6: Interfaz servidor
Boton_Jugar
msg_area
msg_enviarmsg_texto
8. Código Del Juego “TRES EN RAYA”
Juego obtenido de internet (En la bibliografía el link donde se descargó). Este
juego utiliza sockets para la comunicación de los jugadores, ya sea por medio
de una maquina o dos máquinas, tiene un servidor que permite la conexión de
los dos jugadores, estos jugadores cada uno tiene una interfaz de juego (X y O)
que por medio de una dirección IP (si es en una sola maquina la dirección es
“localhost”, si son dos máquinas la dirección es la IP de la maquina servidor)
se conectan al servidor y así poder jugar.
Servidor del juego “TRES EN RAYA”
Figura 7: Servidor del juego
9. Conexión de los Jugadores
Como es conexión en una misma máquina, la dirección a conectarse es
“localhost”.
Figura 8: Conexión de los jugadores
Enlazamiento de los chats con el juego “TRES EN RAYA”
Lo único que se hace es copiar el proyecto del juego en las librerías del
proyecto de los chats.
10. Figura 9: Copiando el proyecto del juego en las librerías del proyecto de los
chats
Interfaz del juego
Figura 10: Interfaz del juego “Tres en Raya”
11. 2.2.2. Cliente para el chat:
En la interface no hay mucho que explicar, ya que cuenta con un área de texto
y un botón mediante el cual se enviara los mensajes y otro para poder jugar el
juego “Tres en Raya”, utiliza las mismas instrucciones del código del servidor.
Creamos las siguientes variables:
Figura 11: Variables para la comunicación, entrada y salidas de datos
En el código de la clase principal del cliente lo único que cambia del código del
servidor es que en esta parte enlazaran la dirección con la que se va a comunicar
el cliente (127.0.0.1) por el puerto número 1201.
Figura 12: Clase principal de cliente
12. En el método de la función del botón ENVIAR, utiliza la misma lógica del
método del botón del código del servidor:
Figura 13: Método de la función del botón ENVIAR
En el método de la función del botón JUGAR, utiliza la misma lógica del
método del botón del código servidor:
Figura 14: Método de la función del botón JUGAR
Interfaz Cliente:
Figura 15: Interfaz de cliente
13. 2.2.3. Prueba del código:
Primero ejecutamos el servidor del juego “Tres en Raya”.
Luego ejecutamos el servidor del chat.
Paso siguiente ejecutamos el cliente del chat.
Nos resultaría algo así:
Figura 16: Prueba del código
Podemos interactuar enviando mensajes presionando el botón ENVIAR, como
también podemos jugar el juego “Tres en Raya” presionando el botón
JUGAR.
Figura 17: Vista del juego
14. 2.3. Para Dos Maquinas:
La comunicación de chats en distintas maquinas es posible gracias a los sockets,
por medio de un cable de conexión a internet, y configurando las direcciones ip
de las máquinas. En este código utilizamos la misma lógica que el código de una
sola máquina, la única diferencia es que el cliente no va a tener “localhost” como
dirección para que se conecte con el servidor, en lugar de esa dirección va a tener
la dirección IP de la maquina servidor (como hay dos máquinas, una es maquina
servidor y la otra máquina cliente). Con el código del juego va pasar lo mismo, en
lugar que los jugadores se conecten a “localhost”, se conectaran a la dirección IP
de la maquina servidor.
Maquina servidor:
Clase Principal del código:
Figura 18: Clase principal del Servidor
15. Método del Botón ENVIAR:
Figura 19: Método del botón ENVIAR
Método del Botón JUGAR:
Figura 20: Método del botón JUGAR
Maquina cliente:
Clase Principal del código:
En este caso nuestra maquina servidor tiene como dirección IP = 192.168.1.2
16. Figura 21: Clase principal del cliente
Método del Botón ENVIAR:
Figura 22: Método del botón enviar
Método del Botón JUGAR:
Figura 23: Método del botón jugar
17. Código del juego “TRES EN RAYA”
Los jugadores se conectan al servidor por medio de la dirección IP =
192.168.1.2
Figura 24: Conexión del cliente del juego al servidor
Prueba del código
Primero se ejecuta el servidor del juego de la MAQUINA SERVIDOR.
Luego se ejecuta el servidor del chat de la MAQUINA SERVIDOR.
Por último, se ejecuta el cliente del chat de la MAQUINA CLIENTE.
Maquina Servidor:
Figura 25: Vista de la Maquina servidor
18. Maquina Cliente:
Figura 26: Vista de la Maquina cliente
Las dos maquinas
Figura 27: Vista de las interfaces en las dos maquinas
19. Ya conectados se puede interactuar enviando mensajes y jugando en juego
“Tres en Raya”.
Figura 28: Vista del juego en las dos maquinas
3. Conclusiones:
• Se llegó a implementar el juego “Tres en raya” utilizando sockets.
• Mediante la conexión realizada, se logró que existiera comunicación entre los
computadores, logrando que estos estén listos para comenzar el juego, y a su
vez se puedo enviar mensajes entre los adversarios.
• En el transcurso de recolección de información, se llegó a conocer que existen
diferentes formas de establecer la conexión entre computadores partiendo
desde los mismos conceptos básicos (por ejemplo, por medio de direcciones
IP).
20. 4. Recomendaciones:
Para que el juego funcione correctamente se debe tener en cuenta las siguientes
recomendaciones:
• Ejecutar primero el servidor y luego el cliente para que se pueda establecer
conexión entre los chats.
• Para que el juego “Tres en Raya” funcione, primero se debe ejecutar su
servidor antes de cualquier otra ventana de los códigos.
• Los turnos del juego “Tres en Raya” se generan aleatoriamente, respetando
que el primer turno siempre es de “X”.
• Para que exista conexión entre dos máquinas, se debe configurar las
direcciones IPs de las dos máquinas y cambiar la configuración de uso
compartido avanzado con las siguientes opciones:
▪ Activar la detección de redes.
▪ Activar el uso compartido de archivos e impresoras.
▪ Activar el uso compartido para que todos los usuarios con acceso
a la red puedan leer y escribir archivos de las carpetas públicas.
▪ Habilitar el uso compartido de archivos para dispositivos que usan
el cifrado 40 o 56.
▪ Desactivar el uso compartido con protección por contraseña.
5. Bibliografía:
• Walton, S. (2001). Programación de Socket Linux. Madrid: Prentice Hall.
• (2018). Obtenido de:
http://www.revistaespacios.com/a17v38n59/a17v38n59p06.pdf
(LINKOGRAFIA)
• Código del juego “TRES EN RAYA” obtenido de:
http://netosolis.com/juego-del-gato-tic-tac-toe-utilizando-sockets-en-java/
(LINKOGRAFIA)