Yo lo veo mas en juegos de lan que online (ej. counter strike). Yo enciendo un servidor en un PC IP: 192.168.0.1, otra IP (192.168.0.3) lo detecta segundos despues y lo muestra como "listo para conectarse", todo automaticamente. No se como lo haran (podriamos poner para escuchar 192.168.0.x varios a la vez, pero e visto casos en que llegan a valores altos xD). La gran pregunta es como hacerlo
El counter strike busca servidores de dos formas... una es con un listado de servidores en forma de archivo, toma las direcciones y comienza a verificar conexiones una por una, la otra forma es por lan, si le haces click en mostrar lista de servidores locales el counter comenzará a hacer un rastreo de ips comenzando por 127.0.0.1 y despues por 192.168.0.1 hasta 192.168.254.254 y lo que hace es conectar un socket por medio del protocolo udp a la ip, si esta ip acepta la conexión entonces envía el header y si el header es del servidor de counter entonces lo agrega a la lista.
Eso significa que el counter hace dos conexiones, una para escanear y la otra para jugar.
Algo similar hace el netscann, le das un rango de ips y comienza a escanear, lo que hace es hacerle ping ip por ip.
Nmap también lo hace pero utiliza métodos diferentes que el socket nativo de visual basic no puede hacer ya que necesitas utilizar el socket a nivel RAW y windows restringe el acceso desde el sistema operativo, por eso se utilizan parches o drivers como winpcap.