Shouldn't this be `portscanner.findLocalPortNotInUse(port+1, endPort, callback);` (`port+1` instead of `port`)? It appears that if the first port that hits `EADDRINUSE` will cause an infinite loop here.

It also appears that this line references `findLocalPortNotInUse` instead of `findALocalPortNotInUse`.