¿Cómo elige Node.js puertos aleatorios?

Con Node.js, podemos crear un servidor y escuchar en un puerto aleatorio:

var server = net.createServer();
server.listen(0, '127.0.0.1');

El primer parámetro, puerto0, indica elegir un puerto aleatorio y127.0.0.1 indica escuchar solo en localhost,como documentado.

¿Node.js selecciona un puerto que no está en uso? ¿Tengo que comprobarlo yo mismo y volver a intentar si Node.js elige un puerto que ya está abierto y vinculado a otra aplicación? ¿Elige algún puerto antiguo o solo puertos de usuario (> 1024)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta