SlideShare una empresa de Scribd logo
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

Proyecto investigacion software
Proyecto investigacion softwareProyecto investigacion software
Proyecto investigacion softwareAndy Cedeño
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
Fabian Rojas
 
Ejercicios uml
Ejercicios umlEjercicios uml
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windowsomfib123
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)
UAEMex
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
YESENIA CETINA
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidosdrianda
 
Crear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlCrear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlEmerson Garay
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
Johan Villamizar Tabares
 
Maquinas virtuales parallels
Maquinas virtuales parallelsMaquinas virtuales parallels
Maquinas virtuales parallels
Miguel Frías
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuidaJorch Mendez
 
Cuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMSCuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMS
Hugo Alberto Rivera Diaz
 
Subneteo de redes
Subneteo de redesSubneteo de redes
Subneteo de redes
Vannesa Salazar
 
Procesos e Hilos
Procesos e HilosProcesos e Hilos
Procesos e Hilos
Luis Feliciano
 
Proyecto fernando compiladores 1
Proyecto fernando compiladores 1Proyecto fernando compiladores 1
Proyecto fernando compiladores 1
Fernando Jacome Montes
 
Cuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUXCuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUXjuanhuapaya
 
Uso de threads en C#
Uso de threads en C#Uso de threads en C#
Uso de threads en C#
Ana Ivonne Val
 

La actualidad más candente (20)

Proyecto investigacion software
Proyecto investigacion softwareProyecto investigacion software
Proyecto investigacion software
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windows
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidos
 
Sistema operativo de red
Sistema operativo de redSistema operativo de red
Sistema operativo de red
 
Crear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlCrear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sql
 
Sesion12-componentes Visuales java
Sesion12-componentes Visuales javaSesion12-componentes Visuales java
Sesion12-componentes Visuales java
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
Maquinas virtuales parallels
Maquinas virtuales parallelsMaquinas virtuales parallels
Maquinas virtuales parallels
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuida
 
Cuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMSCuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMS
 
Subneteo de redes
Subneteo de redesSubneteo de redes
Subneteo de redes
 
ADMINISTRACION DE MEMORIA
ADMINISTRACION DE MEMORIAADMINISTRACION DE MEMORIA
ADMINISTRACION DE MEMORIA
 
Procesos e Hilos
Procesos e HilosProcesos e Hilos
Procesos e Hilos
 
Proyecto fernando compiladores 1
Proyecto fernando compiladores 1Proyecto fernando compiladores 1
Proyecto fernando compiladores 1
 
Cuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUXCuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUX
 
Uso de threads en C#
Uso de threads en C#Uso de threads en C#
Uso de threads en C#
 

Similar a juego-utilizando-sockets

Juego de la Oca 3.0
Juego de la Oca 3.0Juego de la Oca 3.0
Juego de la Oca 3.0
MARTAUNED2014
 
Guia básica Packet Tracer
Guia básica Packet TracerGuia básica Packet Tracer
Guia básica Packet Tracer
Erick 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 - copia
jose2225
 
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
jose2225
 
Tutorial proteus inicial
Tutorial proteus inicialTutorial proteus inicial
Tutorial proteus inicial
Germán Sanabria
 
Tutorialproteus
TutorialproteusTutorialproteus
Tutorialproteus
Antonio Shinela
 
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
Angela Ximena Pedraza Martinez
 
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
timmaujim
 
Manual de packet tracer
Manual de packet tracerManual de packet tracer
Manual de packet tracer
sebastianrojas192
 
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 dados
David Gallegos
 
Diseño de redes usando simuladores
Diseño de redes usando simuladoresDiseño de redes usando simuladores
Diseño de redes usando simuladores
Instituto Universitario Politécnico Santiago Mariño
 
Mafeeer
MafeeerMafeeer
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 java
David Gallegos
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP Multicast
Hector 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
 

Último

CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 

Último (6)

CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 

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)