Nodejs随机免费的TCP端口

每次我的类的新实例被实例化时,我的项目都需要设置一个新的端口。

在Node.js中,我怎么能find一个免费的TCP端口设置在我的新套接字服务器? 或者检查我指定的端口是否已被使用。

您可以通过为端口指定0绑定到由操作系统分配的随机自由端口。 这样你就不会受到竞争条件的影响(比如检查一个开放的端口和一些绑定到它的进程,然后你有机会绑定它)。

然后你可以通过调用server.address().port来获得分配的server.address().port

例:

 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); }); 

要find一个打开的TCP端口,你可以使用模块portastic

你可以find像这样的端口:

 port = require('portastic'); options = { min : 8000, max : 8005 } port.find(options, function(err, data){ if(err) throw err; console.log(data); });