Estuve probando el código y funciona... pero el numero mostrado no es la latencia (ping) que tienes con el GS (al menos a mi me pareció que no), revisando los valores que arrojaba el código (sin modificarlo en absoluto) había ocasiones en las que mostraba 0ms 13ms y valores realmente bajos, el punto es que revisando el Monitor de Recursos de Windows, me doy con la sorpresa que ninguno de los valores mostrados por el código eran iguales a los mostrados por el Monitor de Recursos de Windows, puesto que en el monitor los valores rondaban los 50ms a 130ms, permaneciendo la mayor parte del tiempo en 53ms estables, mientras que en el main se mostraban valores prácticamente random que incluso superaban los 500ms o 600ms.
Si se fijan en la foto se ve 46ms en el monitor y 438ms en el main, alguien mas probo el codigo? @kayito podrias corroborar si en tu caso funciona bien y los valores en el monitor y el main concuerdan?
Te explico cómo funciona el código:
El main guarda el tiempo actual en milisegundos y envía una señal al gameserver.
El gameserver recibe la señal y la responde.
El main recibe la señal respondida, guarda el tiempo actual en milisegundos y le resta el tiempo guardado al hacer el envío.
El main muestra ese valor que sería el tiempo que demoró en responderte el gameserver.
NO ES LO MISMO que hacer ping desde tu pc al VPS, eso ya es el tiempo de respuesta del VPS y no del GameServer, ya que el gameserver procesa otros pedidos y a veces por saturación de pedidos puede demorar más o menos en responderte entonces es problable que vos hagas ping al VPS y te figuren 50ms cuando realmente el gameserver está demorando 200ms en responderte, entonces nunca sabrías el "por qué tenés lag si el vps no tiene latencia"