我想验证使用Node.js是否可以访问某个端口。基本上,我所做的是编写以下程序:
var net = require('net');
var client = new net.Socket();
client.connect(3003, 'localhost');
client.on('error', function (err) {
console.log(err);
process.exit();
});
client.once('connect', function () {
console.log('Connected!');
process.exit();
});
到目前为止,这几乎都很好。我只有一件事不满意,那就是超时处理。在本地它按预期工作,但当我尝试
client.connect(81, 'www.google.de');
直到我超时才需要两分钟。为什么会发生这种情况,我该怎么办呢?
PS:我知道Node.js中的套接字有setTimeout函数,但要么它不符合我的想法,要么我错了。
答案 0 :(得分:2)
为句柄超时添加以下行:
client.setTimeout(1000);
client.on('timeout', function(){
client.end();
})'
或:
client.setTimeout(1000, function(){
client.end();
});
文档:here