elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Wisock - Hacer que no se quede con un solo cliente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Wisock - Hacer que no se quede con un solo cliente  (Leído 3,019 veces)
Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Wisock - Hacer que no se quede con un solo cliente
« en: 12 Agosto 2013, 07:33 am »

Hola a todos amigos pues aqui me vengo a explicar.

Tengo tiempo con una idea en la mente realmente simple, es crear un juego winsock especialmente de batallas con cartas , algo simple lo que me inspiro fue Ani dimension lo mejor que visto en mi vida de verdad que si!.

Bien volviendo al tema, quiero saber como crear un servidor que escuche en el mismo puerto pero que se use de Sala .

Me explico:

Quiero que el servidor actue como una room donde estan todos los usuarios y de hay los usuarios elijen con quienes quieren batallar .

Esto es todo espero que me puedan ayudar hasta la proxima.
Haa y acepto comententarios y/o ayudas con el tema del juego.
 :D :D


En línea



Creador de BrainMind
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #1 en: 12 Agosto 2013, 08:01 am »

ya que el puerto solo puede escuchar una comunicación única por el puerto te recomiendo usar "división de tiempo"

si un usuario se conecta un nuevo lo guardas en una lista (array) de usuarios, luego vas pasando el "token" entre los usuarios es decir, le envías que es su turno, el se comunica, cierras con el, vas al siguiente de la lista, y así vas, cada quien tiene un turno para hablar

claro este método tiene un punto débil, es sensible a cantidad de usuarios y a retraso... es decir si tienes 10 usuarios con un ping de 200ms cada uno, un usuario solo vería actualización cada 2 segundos

mi recomendación es usar varios puertos

reservas un lote de puertos (ej. del 100 al 200)
y usas 1 puerto de conexión, el usuario se conecta y le envías que puerto le toca (ej el puerto 105), entonces abres el puerto 105 en modo escucha (listen) y el usuario abre la conexión para entrar por ahí y ahí manejas los datos... defecto de este método, un servicio puede usar inesperadamente un puerto bloqueándolo, y que tienes un limite de usuarios definido por la cantidad de puertos


espero que te sirva de algo mi info :P


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
noalg

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #2 en: 12 Agosto 2013, 12:00 pm »

bueno en cierto modo deberias hacer lo que dijo engelx pero no estrictamente, en el servidor debes poner un socket escuchando en un puerto x, cada vez que un cliente intenta conectarse a tu servidor por ese puerto x, debes crear otro socket, probablemente almacenar todos estos sockets en un array, no es necesario usar mas que un puerto.
Una vez realizada la conexion, y empieces la partida tienes dos opciones, conseguir que ambos clientes se conecten entre ellos (cliente <-> cliente) o (cliente <-> servidor <-> cliente). La segunda es obviamente mas lenta, pero para un juego de cartas que no creo que sea muy rapido ni que necesites enviar mucha informacion por lo que puedes elegir la segunda opcion.

No es exactamente lo que tu quieres pero establece multicobexion, hechale un vistazo que te aclarara cosas:
http://www.indetectables.net/viewtopic.php?p=34880
En línea

::¿*¿---//&$#\\---▶{}◀---//#$&\\---?*?::


¡¡¡NO PINCHES AQUI SI NO QUIERES INFECTARTE CON UN VIRUS!!!
Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #3 en: 12 Agosto 2013, 20:17 pm »

gracias a todos por contestar de verdad que me gustan sus respuestas explican muchas cosas.

Probe el link que me dio noalg y me gusto el ejemplo pero realmente quiero saber como puedo hacelo de otra manera este tiene como 5 errores...


Pero bueno espero que me puedan contestar con algo mas explicativo..

Un saludo y muchas gracias!
En línea



Creador de BrainMind
noalg

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #4 en: 12 Agosto 2013, 21:51 pm »

Creo que aqui vendra todo mejor explicado, no solo la multiconexion sino todo lo relaccionado con sockets. No tengo tiempo ni estoy en mi ordenador para hacerte un ejemplo yo personalmente, espero que te sirva

http://monografias.com/trabajos30/tutorial-visual-basic/tutorial-visual-basic.shtml

Intenta empezar a codearlo y si no te funciona vuelve con las dudas y partes de codigo erroneo.
En línea

::¿*¿---//&$#\\---▶{}◀---//#$&\\---?*?::


¡¡¡NO PINCHES AQUI SI NO QUIERES INFECTARTE CON UN VIRUS!!!
Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #5 en: 13 Agosto 2013, 00:28 am »

Gracias nolag esta perfecto , voy a hacer lo que me escribes empesare a crearlo y pues si tengo algun error o duda pues la diga..

Gracias y un saludo!
En línea



Creador de BrainMind
DarkMatrix

Desconectado Desconectado

Mensajes: 150


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #6 en: 13 Agosto 2013, 09:02 am »

En el ejemplo que te pase no hace mucho esta lo que quieres hacer, al menos algo parecido, hablamos de un chat multi-usuarios con posibilidad de mensajes privados estre usuarios, lo que tu llamas salas (conexion entre 2 o mas clientes independiente de los demas clientes conectados al servidor) es lo mismo que el sistema de whispers (chat privados) que usan en el ejemplo.

Un cliente le indica al servidor que quiere empezar un chat privado con otro usuario (independiente del chat general), para esto el servidor necesita saber con que usuario quiere empezar el chat y de este modo poder redirigir los mensajes de un cliente a otro, siendo el servidor un intermedio de comunicacion. Tal y como te comento el usuario @noalg en este caso es una comunicacion del tipo (cliente <-> servidor <-> cliente).

En el ejemplo, cada cliente ya tiene la lista de usuarios que estan conectados al sevidor, por lo que el usuario selecciona con quien quiere empezar el chat privado y le envia al servidor el nick del usuario y el mensaje que quiere enviarle.. El servidor agarra estos datos, busca en que sock esta conectado el usuario con el nick especificado y redirige el mensaje hacia ese sock...

Cliente1 -> Servidor = ChatPrivado(NickCliente1,NickCliente2,Mensaje)
Servidor Analiza el paquete y busca en que sock esta conectado NickCliente2 cuando lo encuentra entonces redirige los otros 2 datos, que son el NickCliente1 y el mensaje...
Servidor -> Cliente2 = ChatPrivadoRecibido(NickCliente1,Mensaje)

En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #7 en: 13 Agosto 2013, 18:54 pm »

DARK eres mi heroe , en serio Lo digo tus aportes son 100pre utiles y responden a mis dudas.

una dudita mas,podria utilizarlo a la hora de hacer los lobbis?
usar esa mismA tecnica?
En línea



Creador de BrainMind
DarkMatrix

Desconectado Desconectado

Mensajes: 150


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Re: Wisock - Hacer que no se quede con un solo cliente
« Respuesta #8 en: 13 Agosto 2013, 20:52 pm »

Si puedes, en el ejemplo seria como tener varias salas de chat generales...
En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines