最近在学习nodejs的http,然后做了一个测试域名有没有使用那些端口,原意是用来做一个本地的静态服务器,然后运行前先测试端口,首先要用到的是net模块,主要用到的是Socket,判断其连接状态即可实现,代码如下:
var net = require('net'),socket = net.Socket;
先是模块的引用。
接着下面是一个简单的实现:
var testPort = function(port,host,cb){ var nsk = new socket(); nsk.setTimeout(5000);//设置连接超时时间 5s nsk.on('connect',function(){//连接状态 nsk.destroy();//销毁 cb(port,'open'); }) .on('timeout',function(){//连接超时 nsk.destroy(); cb(port,'timeout'); }) .on('error',function(){//连接错误 nsk.destroy(); cb(port,'closed'); }); nsk.connect(port,host);//执行连接 };
port为端口号,host为域名(IP也可以),分为三种状态 open、timeout、closed (在使用、超时、关闭的),那么运行的方法如下:
testPort(80,'127.0.0.1',function(port,status{ console.log(port,status) })