Para saber si el puerto está en uso, no hace falta detectar todos los puertos libres de una máquina (que deben andar por 65400 o 65500)... tratá de activar el servidor. Si tratas de usar un puerto que ya está bajo control de otra aplicación, saltará una excepción. Ahora no recuerdo cual es, pero es simple averiguarlo.
Corre dos instancias de tu servidor atacando el mismo puerto... en la segunda que trate de activarse, se elevará la excepción.
Hasta luego.