如何测试服务是否正在使用Node.js侦听TCP?

Dmi*_*sky 2 tcp node.js

简介:如何使用Node.js查看是否正在侦听给定端口?

细节:

我正在为Node中的基于HTTP的应用程序编写测试.

我已经扩展节点的http.Server使用util.inherits,以及由此产生的"类"包装标准.listen()在叫我自己的方法的功能.start().此方法执行一些设置(例如连接到MongoDB),然后http.Server.listen(port, cb)在一切都好的时候调用.

我的问题:我想编写一个测试,.start()然后检查服务器是否确实正在侦听指定的端口.我想这样做而不向服务器发送HTTP请求到字段.我只想测试服务器正在监听.

不幸的是,我不熟悉TCP,但考虑到我在端口扫描方面的经验netstat以及这种性质的东西,我觉得 Node的网络包中的某些内容会让我这样做.这可能吗?

小智 7

使用net.connect():

var net = require('net');
var client = net.connect({port: 8124},
function() { //'connect' listener
  console.log('client connected');
  client.end();
});
Run Code Online (Sandbox Code Playgroud)

关于net模块的Node.JS文档