首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Nodejs随机可用tcp端口

Nodejs随机可用tcp端口
EN

Stack Overflow用户
提问于 2015-01-21 00:17:21
回答 5查看 24.6K关注 0票数 45

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

在Node.js中,我怎样才能找到一个空闲的TCP端口来设置我的新socket服务器?或者检查我指定的端口是否已被使用。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-01-21 00:28:32

通过为端口指定0,您可以绑定到OS分配的随机空闲端口。这样你就不会受到竞争条件的影响(例如,在你有机会绑定到它之前,检查是否有一个开放的端口和一些绑定到它的进程)。

然后,您可以通过调用server.address().port来获取分配的端口。

示例:

代码语言:javascript
复制
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);
});
票数 90
EN

Stack Overflow用户

发布于 2019-01-31 23:52:45

对于Express应用程序:

代码语言:javascript
复制
const app = require('express')();

const server = app.listen(0, () => {
  console.log('Listening on port:', server.address().port);
});
票数 21
EN

Stack Overflow用户

发布于 2015-01-21 00:22:30

要查找打开的TCP端口,可以使用模块portastic

你可以像这样找到一个端口:

代码语言:javascript
复制
port = require('portastic');

options = {
    min : 8000,
    max : 8005
}

port.find(options, function(err, data){
    if(err)
        throw err;
    console.log(data);
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28050171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档