Control Winsock

Iniciado por DarkMatrix, 13 Septiembre 2008, 22:38 PM

0 Miembros y 1 Visitante están viendo este tema.

DarkMatrix

Buenas Foreros, Estoy por aca con una incógnita que me llevo encima, la cosa es q tengo un proyecto de un juego online y para la conexión de cada cliente uso el control winsock, ahora aquí mis preguntas:

1. En el servidor utilizo un control winsock, por cada cliente q se conecte al servidor este crea un nuevo socket ósea otro winsock que seria WS(0) y si se conecta otro cliente seria WS(1) y así sucesivamente, ahora ¿esta matriz de controles tiene limite? ósea ¿que si se puede llegar al WS(99999) u otro numero?

2. ¿En caso de que tuviera límite cual seria?

3. ¿Hay otra forma de hacer esto?

4. Pongamos este ejemplo: Hay 10 clientes conectados al Servidor, lo que nos da Winsock's del 0 al 9, cuando se utiliza un Socket en el servidor y el cliente por alguna razón se desconecta, pongamos de ejemplo el WS(7) y se conecta otro cliente o el mismo en tal caso, no crea un socket en ese numero si no en uno nuevo ósea en un WS(10) y no en el 7

¿Hay alguna forma de usar los sockets que ya han sido borrados?

(Solo para no tener números tan altos cuando solo hay 30 clientes conectados y el último esta conectado al socket por ejemplo 72, aunque los que no están siendo utilizados son descargados de la memoria)

y por ultimo

5. ¿Hay algún limite en la transferencia de información a través del servidor?

Pregunto por el siguiente caso: suponiendo que hay 30 clientes conectados y todos hablando al mismo tiempo, ósea enviando datos al Server para que este reenvié la información a los clientes, y en caso de que las charlas contengan mas o menos 200 o 300 caracteres de información el Server no se colapsaría de tanta información?

De antemano gracias por las preguntas que se puedan responder y por las ideas que puedan aportar.

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

BlackZeroX

1.- el limite seguns e es al rededor de 32500 (jamas e usado tantos apenas y yo llegaba a 1000 xP)
2.- el limite me parece que tambien se limita por tu vel. de internet
3.- mmm si por el DirectX
4.- correjo ya que segun veo deberias tener el 0 en escucha Siempre y apartir del 1 empesarian las conexiones xP es decir  del 1 al 10 estar conectados mientras que el 0 siempre a la escucha a como lo veo si se desconectan es que tu ancho de banda ya no da para mas Winsock
5.- si la hay y es volverlo a cargar o reabrirlos con alguna verificacion  es decir:

si tenemos 10 winsock sin contar el 0 que esta a la escucha () 0 escuchando y de 1 a 10 para conectarse)
deberias pasar desde el ws(1) hasta el ws(10) y verificar que su estado no sea 7(conectado sin algun problema) y si es diferente entonces conectar en ese WS

5.- el limite es el anchho de banda ya sea del cliente o del servidor
ejemplo:
supooniendo que:
Servidor  Cliente  limite
10mb      512kbs  es del cliente
512         10mb    es del servidor
mas facil no lo creo

y la ultima si se colapsa por eso deberias usar 1 puerto para la escuecha y otro para enviar informacion asi evitarias esto   pero si usas un mismo puerto para ambas cosas esto se colapsara irremediablemente
The Dark Shadow is my passion.

DarkMatrix

Gracias por las respuestas me han servido de mucho, con respecto a la ultima respuesta, tendria que conectar al los clientes a 2 puertos distintos para que no colapsara, en tal caso tendria que usar 2 winsock en los clientes o me equivovo?

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

BlackZeroX

Cita de: nike42 en 13 Septiembre 2008, 23:22 PM
Gracias por las respuestas me han servido de mucho, con respecto a la ultima respuesta, tendria que conectar al los clientes a 2 puertos distintos para que no colapsara, en tal caso tendria que usar 2 winsock en los clientes o me equivovo?
sip
The Dark Shadow is my passion.