elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 08:57  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Problema Socket Visual Basic 6.0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema Socket Visual Basic 6.0  (Leído 901 veces)
mateo2011

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Problema Socket Visual Basic 6.0
« en: 13 Octubre 2011, 14:52 »

Tengo un juego MMROPG Masivo 2D conocido como Argentum Online.

Utiliza Winsock TCP/IP
Y resulta que tras varias pruebas en el ping, los paquetes llegan en tiempos de 20ms a 250ms.
Tras profundizar el tema, me di cuenta que al enviar una cantidad constante de paquetes se comienza agrandar el ping y los paquetes tardan 250ms en llegar al destino.
Tras varias pruebas vi que si envias 1 paquete cada 50ms y haces que el servidor lo detecte y lo retorne se puede mantener un ping constante de 50-70ms.
Pero eso con mas de 50 conneciones me satura todo y me chupa mucho bando de ancha.
Y este juego para la buena jugabilidad necesita si o si pings menores a 100.

Pense usar UDP y de echo lo hize pero los Winsockets en UDP se me perdian todos los paquetes auque el PING era muy bajo MUY BAJO (9-15ms).
Para que me tire ese ping en el protocolo TCP/IP tengo que estar sin actividad de paquetes.
Utiliza manejo de datos de forma binaria escribiendo bytes/integers/longs y leyendolos.

¿Alguna idea?
Gracias ^^


En línea
raul338
Moderador
***
Desconectado Desconectado

Mensajes: 2.372


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problema Socket Visual Basic 6.0
« Respuesta #1 en: 13 Octubre 2011, 15:34 »

Lo unico que te podremos decir es que trates de economizar todo. No envies strings a cada rato, trata de enviarlos una vez y ahi envias identificadores, que sea todo numero :)

Y si dices que el servidor con 50 conexiones te satura el ancho de banda... pues comprate otra conexion, como quieres llamar un server MMO si solo soporta 50 conexiones :xD


En línea

mateo2011

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema Socket Visual Basic 6.0
« Respuesta #2 en: 13 Octubre 2011, 19:47 »

Por eso mismo... Se aguante 200 usuarios tranquilamente.
Cuando le pongo para enviar 1 paquete cada 50ms de envio y recivo, mejora el PING entre 50-70ms y es muy jugable pero a los 50 usuarios se laguea todo.

El host que tengo es bueno, un VPS de 512 de ram, 2 nucleos, y 10mb de conexión simetrica y tira 9ms-16ms con el PING.

Lo de optimizar paquetes lo hice al maximo.
Pero un usuario en movimiento manda 1 paquete cada 200ms (5 paquetes por segundo) y esa suma se multiplica dependiendo la cantidad de usuarios en pantalla.
En línea
raul338
Moderador
***
Desconectado Desconectado

Mensajes: 2.372


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problema Socket Visual Basic 6.0
« Respuesta #3 en: 13 Octubre 2011, 22:09 »

No creo que el lag se haga por la conexion (si es que son 10mb simetricos reales... o al menos 7mb)... sino por el procesamiento del server :rolleyes:
En línea

mateo2011

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema Socket Visual Basic 6.0
« Respuesta #4 en: 13 Octubre 2011, 22:44 »

No creo que el lag se haga por la conexion (si es que son 10mb simetricos reales... o al menos 7mb)... sino por el procesamiento del server :rolleyes:

En localhost funciona a 5 a 0ms tomando el PING con QueryPerfomance.
Y ese PING es constante.

Probe usando los Sockets en un programa externo y pasaba lo mismo.
Para mi es algo de los Winsockets o de Visual Basic.
En línea
raul338
Moderador
***
Desconectado Desconectado

Mensajes: 2.372


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problema Socket Visual Basic 6.0
« Respuesta #5 en: 13 Octubre 2011, 23:39 »

En localhost funciona a 5 a 0ms tomando el PING con QueryPerfomance.
Y ese PING es constante.
Localhost? :| probas en local? proba en 2 pc con 2 conexiones distintas :P
En línea

mateo2011

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema Socket Visual Basic 6.0
« Respuesta #6 en: 14 Octubre 2011, 00:41 »

Localhost? :| probas en local? proba en 2 pc con 2 conexiones distintas :P

Con 2 clientes nada mas no se mandan los suficientes paquetes para laguear.
Cuando hay peleas de 2 usuarios anda perfectamente.

Pero las peleas normalmente superan los 5 usuarios, entonces al mandar tanta cantidad de paquetes para actualizarles la posicion comienza andar muy mal.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines