Node.js检测端口(port)是否被占用的简单示例
网络编程
前言
在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的 端口,端口号的范围从0到65535,比如用于浏览网页服务。这篇文章的目的是为了解决ssr工具起多个服务的时候端口被占用的情况,下面跟大家分享研究的代码片段,有需要的可以参考借鉴。
示例代码
// 检测port是否被占用 function probe(port, callback) { var server = net.createServer().listen(port) var calledOnce = false var timeoutRef = setTimeout(function () { calledOnce = true callback(false,port) }, 2000) timeoutRef.unref() var connected = false server.on('listening', function() { clearTimeout(timeoutRef) if (server) server.close() if (!calledOnce) { calledOnce = true callback(true,port) } }) server.on('error', function(err) { clearTimeout(timeoutRef) var result = true if (err.code === 'EADDRINUSE') result = false if (!calledOnce) { calledOnce = true callback(result,port) } }) } function server(_port){ var pt = _port || __port; probe(pt,function(bl,_pt){ // 端口被占用 bl 返回false // _pt:传入的端口号 if(bl === true){ // ssr(_pt) server = http.createServer(connListener); server = server.listen(parseInt(_pt, 10)); console.log("n Static file server running at" + "nn=> http://localhost:" + _pt + 'n'); }else{ server(_pt+1) } }) }
总结
以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。
利用Node.js获取项目根目录的小技巧
假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。实现功能如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico
Node.js与MySQL交互操作及其注意事项
node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑。前几天他们在操作数据
阿里云ecs服务器中安装部署node.js的步骤
首先下载了putty用来连接服务器的控制台,还有flashFXP用来上传文件。下面是详细的步骤,一起来看看。1.下载node.js下载地址:node.js千万不要用命令行下
编辑:一起学习网
标签:端口,这篇文章,文件,端口号,步骤