SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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
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
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
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
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
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).
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
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
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.
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”
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
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
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
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
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
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
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
Maquina Cliente:
Figura 26: Vista de la Maquina cliente
Las dos maquinas
Figura 27: Vista de las interfaces en las dos maquinas
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).
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)

Más contenido relacionado

La actualidad más candente

Programacion En Lenguaje C
Programacion En Lenguaje CProgramacion En Lenguaje C
Programacion En Lenguaje CKritius
 
Ejercicios programacion prolog
Ejercicios programacion prologEjercicios programacion prolog
Ejercicios programacion prologrogersgarcia
 
Creación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerCreación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerJenny Lophezz
 
Análisis y diseño de sistemas sesion 15 - casos de estudio
Análisis y diseño de sistemas   sesion 15 - casos de estudioAnálisis y diseño de sistemas   sesion 15 - casos de estudio
Análisis y diseño de sistemas sesion 15 - casos de estudioGianfrancoEduardoBra
 
2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redes2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redesMoises jimenez Chavez
 
Direccionamiento de red
Direccionamiento de redDireccionamiento de red
Direccionamiento de redElvin Fortin
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniRAUL CHIPANA LARICO
 
Taller 3 instalacion de sistemas operativos
Taller 3 instalacion de sistemas operativosTaller 3 instalacion de sistemas operativos
Taller 3 instalacion de sistemas operativosJhon Jairo Diaz
 
Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de softwareJhoselinQ
 
Servidor web en packet tracer
Servidor web en packet tracerServidor web en packet tracer
Servidor web en packet tracerKevin Cruz Duarte
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad IILuis Caiza
 
Plantilla formato ieee830
Plantilla formato ieee830Plantilla formato ieee830
Plantilla formato ieee830ljds
 
Contrato de Desarrollo de Software
Contrato de Desarrollo de SoftwareContrato de Desarrollo de Software
Contrato de Desarrollo de SoftwareGlobal Negotiator
 

La actualidad más candente (20)

Programacion En Lenguaje C
Programacion En Lenguaje CProgramacion En Lenguaje C
Programacion En Lenguaje C
 
Unidad 3: Herencia Ejercicio 2
Unidad 3: Herencia Ejercicio 2Unidad 3: Herencia Ejercicio 2
Unidad 3: Herencia Ejercicio 2
 
Ejercicios programacion prolog
Ejercicios programacion prologEjercicios programacion prolog
Ejercicios programacion prolog
 
Creación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerCreación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracer
 
Análisis y diseño de sistemas sesion 15 - casos de estudio
Análisis y diseño de sistemas   sesion 15 - casos de estudioAnálisis y diseño de sistemas   sesion 15 - casos de estudio
Análisis y diseño de sistemas sesion 15 - casos de estudio
 
2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redes2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redes
 
Direccionamiento de red
Direccionamiento de redDireccionamiento de red
Direccionamiento de red
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
 
Taller 3 instalacion de sistemas operativos
Taller 3 instalacion de sistemas operativosTaller 3 instalacion de sistemas operativos
Taller 3 instalacion de sistemas operativos
 
ejemplos de pruebas unitarias y de integracion
ejemplos de pruebas unitarias y de integracion ejemplos de pruebas unitarias y de integracion
ejemplos de pruebas unitarias y de integracion
 
Uml clase 02_uml_casos_de_uso
Uml clase 02_uml_casos_de_usoUml clase 02_uml_casos_de_uso
Uml clase 02_uml_casos_de_uso
 
Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de software
 
Servidor web en packet tracer
Servidor web en packet tracerServidor web en packet tracer
Servidor web en packet tracer
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad II
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Plantilla formato ieee830
Plantilla formato ieee830Plantilla formato ieee830
Plantilla formato ieee830
 
Contrato de Desarrollo de Software
Contrato de Desarrollo de SoftwareContrato de Desarrollo de Software
Contrato de Desarrollo de Software
 
Estilos arquitectónicos
Estilos arquitectónicosEstilos arquitectónicos
Estilos arquitectónicos
 
diagrama de despliegue
diagrama de desplieguediagrama de despliegue
diagrama de despliegue
 

Similar a juego-utilizando-sockets

Guia básica Packet Tracer
Guia básica Packet TracerGuia básica Packet Tracer
Guia básica Packet TracerErick Calderin
 
PACKET TRACER
PACKET TRACERPACKET TRACER
PACKET TRACERVERO
 
2 plcs s7 1200 com-cpu_cpu - copia
2 plcs s7 1200 com-cpu_cpu - copia2 plcs s7 1200 com-cpu_cpu - copia
2 plcs s7 1200 com-cpu_cpu - copiajose2225
 
2 plcs s7 1200 com-cpu_cpu
2 plcs s7 1200 com-cpu_cpu2 plcs s7 1200 com-cpu_cpu
2 plcs s7 1200 com-cpu_cpujose2225
 
7.3.1.2 packet tracer simulation exploration of tcp and udp instructions
7.3.1.2 packet tracer simulation   exploration of tcp and udp instructions7.3.1.2 packet tracer simulation   exploration of tcp and udp instructions
7.3.1.2 packet tracer simulation exploration of tcp and udp instructionstimmaujim
 
Herramientas administrativas en diferentes sistemas operativos
Herramientas administrativas en diferentes sistemas operativosHerramientas administrativas en diferentes sistemas operativos
Herramientas administrativas en diferentes sistemas operativosSantiago NA
 
Informe final juego de dados
Informe final juego de dadosInforme final juego de dados
Informe final juego de dadosDavid Gallegos
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuDavid Vevelas
 
Juego de dados en java
Juego de dados en javaJuego de dados en java
Juego de dados en javaDavid Gallegos
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastHector L
 
Escritorio remoto para blog
Escritorio remoto para blog Escritorio remoto para blog
Escritorio remoto para blog Tescha Tescha
 

Similar a juego-utilizando-sockets (20)

Juego de la Oca 3.0
Juego de la Oca 3.0Juego de la Oca 3.0
Juego de la Oca 3.0
 
Guia básica Packet Tracer
Guia básica Packet TracerGuia básica Packet Tracer
Guia básica Packet Tracer
 
PACKET TRACER
PACKET TRACERPACKET TRACER
PACKET TRACER
 
2 plcs s7 1200 com-cpu_cpu - copia
2 plcs s7 1200 com-cpu_cpu - copia2 plcs s7 1200 com-cpu_cpu - copia
2 plcs s7 1200 com-cpu_cpu - copia
 
2 plcs s7 1200 com-cpu_cpu
2 plcs s7 1200 com-cpu_cpu2 plcs s7 1200 com-cpu_cpu
2 plcs s7 1200 com-cpu_cpu
 
Tutorial proteus inicial
Tutorial proteus inicialTutorial proteus inicial
Tutorial proteus inicial
 
Tutorialproteus
TutorialproteusTutorialproteus
Tutorialproteus
 
Paper interfaz del mouse por puerto ps 2 usando fpga
Paper interfaz del mouse por puerto ps 2 usando fpgaPaper interfaz del mouse por puerto ps 2 usando fpga
Paper interfaz del mouse por puerto ps 2 usando fpga
 
7.3.1.2 packet tracer simulation exploration of tcp and udp instructions
7.3.1.2 packet tracer simulation   exploration of tcp and udp instructions7.3.1.2 packet tracer simulation   exploration of tcp and udp instructions
7.3.1.2 packet tracer simulation exploration of tcp and udp instructions
 
Practica cliente servidor java
Practica cliente servidor javaPractica cliente servidor java
Practica cliente servidor java
 
Computacion 3808
Computacion 3808Computacion 3808
Computacion 3808
 
Manual de packet tracer
Manual de packet tracerManual de packet tracer
Manual de packet tracer
 
Herramientas administrativas en diferentes sistemas operativos
Herramientas administrativas en diferentes sistemas operativosHerramientas administrativas en diferentes sistemas operativos
Herramientas administrativas en diferentes sistemas operativos
 
Informe final juego de dados
Informe final juego de dadosInforme final juego de dados
Informe final juego de dados
 
Diseño de redes usando simuladores
Diseño de redes usando simuladoresDiseño de redes usando simuladores
Diseño de redes usando simuladores
 
Mafeeer
MafeeerMafeeer
Mafeeer
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
Juego de dados en java
Juego de dados en javaJuego de dados en java
Juego de dados en java
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP Multicast
 
Escritorio remoto para blog
Escritorio remoto para blog Escritorio remoto para blog
Escritorio remoto para blog
 

juego-utilizando-sockets

  • 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)