Juego de loteria con sockets
Buenos dias gente, en esta ocacion traigo un problema que me gustaria ayudaran a resolver con respecto a una loteria con sockets que se puede jugar en red(es la idea), he estado leyendo y revisando codigos y como hay muchos ejemplos de chats opte por seguir ese esquema. Con "Loteria" me refiero a la que se juega con una baraja y una carta y vas marcando los objetos que van saliendo de la baraja. Bueno al grano.
El servidor se levanta y queda a la espera de clientes, cada vez que un cliente se conecta es atendido por un hilo el cual manda las cartas al cliente cada vez que se hace click en un boton. Represento a las cartas con numeros que son los que se mandan por el socket al cliente, algo como:
*las posiciones las genero aleatoriamente en un arreglo de enteros.
El metodo MandarPorSocket()
El cliente se conecta al servidor si hay conexion y un hilo atiende todo lo que llega por el socket como la opcion de cambiar de carta, algo como:
El metodo SiguienteBaraja();
El problema es que no funciona solo manda y recibe de una a tres cartas por el socket, despues ya no sigue pasando las posiciones de las cartas por el socket, espero me ayuden a resolver esto, con un poco de logica o codigo, cualquier idea es bienvenida. Gracias de antemano. =)
- Inicie sesión o regístrese para enviar comentarios
Hilos
Te falta implementar hilos, por eso recibes pocas cartas.
Si los implemento, un hilo
Si los implemento, un hilo para el cliente y un hilo en el servidor que manejan el proceso de entrada y salida.
Estuve leyendo sobre los
Estuve leyendo sobre los problemas que pueden ocurrir al implementar este tipo de aplicaciones y uno de los problemas es el desbordamiento de bufer pero no se si sea el problema en este caso (aunque no soy yo el que define la longitud del bufer). Lo que no me explico es por que si manda dos o tres datos y luego ya no sigue mandando o recibiendo :-s. Alguien q tenga experiencia en estas aplicaciones ¿me podria iluminar?
Pude resolver el problema,
Pude resolver el problema, pero surgio una nueva duda.
Mi aplicacion funciona de maravilla en una red local, pero cuando intento usarla en internet no funciona.
Esta es la excepcion:
ago 21, 2012 11:44:11 PM interfaces.ConexionCliente Conectar
Grave: null
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.(Socket.java:425)
at java.net.Socket.(Socket.java:208)
at interfaces.ConexionCliente.Conectar(ConexionCliente.java:41)
at interfaces.Principal.(Principal.java:57)
at interfaces.Principal$10.run(Principal.java:706)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
¿Alguien me puede orientar?
firewall?
Broncas de firewall?
Para saber si hay conectividad desde el cliente al servidor, simplemente haz un telnet a la IP del servidor en el puerto donde escucha tu aplicación, desde el equipo del cliente.
No hubo conexion
Gracias por contestar. Probe lo que me dijiste pero no funciono, desactive antivirus y firewall tanto en el servidor como en el cliente y no se pudo. No se si tenga que configurar el modem de telmex, pero el detalle es que no se como hacerlo -_-
En efecto es el modem tienes
En efecto es el modem tienes que agregar a tus reglas del firewall una aplicacion donde le indicaras donde esta dicha aplicacion y el puerto que utilizara. una vez hecho eso tienes que agregar la aplicacion a los puertos permitidos al WAN