Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: DarkMatrix en 13 Septiembre 2008, 22:38 pm



Título: Control Winsock
Publicado por: DarkMatrix en 13 Septiembre 2008, 22:38 pm
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.


Título: Re: Control Winsock
Publicado por: BlackZeroX en 13 Septiembre 2008, 23:12 pm
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


Título: Re: Control Winsock
Publicado por: DarkMatrix 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?


Título: Re: Control Winsock
Publicado por: BlackZeroX en 13 Septiembre 2008, 23:53 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