每次实例化我的类的新实例时,我的项目都需要设置一个新的端口。
在Node.js中,我怎样才能找到一个空闲的TCP端口来设置我的新socket服务器?或者检查我指定的端口是否已被使用。
发布于 2015-01-21 00:28:32
通过为端口指定0
,您可以绑定到OS分配的随机空闲端口。这样你就不会受到竞争条件的影响(例如,在你有机会绑定到它之前,检查是否有一个开放的端口和一些绑定到它的进程)。
然后,您可以通过调用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);
});
发布于 2019-01-31 23:52:45
对于Express应用程序:
const app = require('express')();
const server = app.listen(0, () => {
console.log('Listening on port:', server.address().port);
});
发布于 2015-01-21 00:22:30
要查找打开的TCP端口,可以使用模块portastic
你可以像这样找到一个端口:
port = require('portastic');
options = {
min : 8000,
max : 8005
}
port.find(options, function(err, data){
if(err)
throw err;
console.log(data);
});
https://stackoverflow.com/questions/28050171
复制相似问题