Search code examples
node.jstcpport

Nodejs random free tcp ports


My project need to setup a new port every time a new instance of my class is instantiated.

In Node.js how I can find a free TCP port to set in my new socket server? Or check if my specified port is already used or not.


Solution

  • You can bind to a random, free port assigned by the OS by specifying 0 for the port. This way you are not subject to race conditions (e.g. checking for an open port and some process binding to it before you get a chance to bind to it).

    Then you can get the assigned port by calling server.address().port.

    Example:

    var net = require('net');
    
    var srv = net.createServer(function(sock) {
      sock.end('Hello world\n');
    });
    srv.listen(0, function() {
      console.log('Listening on port ' + srv.address().port);
    });