我有一个项目是用 Nodejs 编写的。我需要知道如何检查带有端口的 IP 是否可以连接。
前任:
检查 example1.com 443 =>true ;
检查 example1.com 8080 =>false
Thanks
了解服务器/端口是否可用的唯一方法是尝试实际连接到它。如果您知道服务器响应 ping,您可以在服务器上运行 ping,但这只是告诉您主机是否正在运行并响应 ping,它不会直接告诉您是否要连接到服务器进程正在运行并接受连接。
真正知道它正在运行并接受连接的唯一方法是实际连接到它并报告它是否成功(注意这是一个异步操作):
var net = require('net');
var Promise = require('bluebird');
function checkConnection(host, port, timeout) {
return new Promise(function(resolve, reject) {
timeout = timeout || 10000; // default of 10 seconds
let socket, timer;
timer = setTimeout(function() {
reject(new Error(`timeout trying to connect to host ${host}, port ${port}`));
socket.end();
}, timeout);
socket = net.createConnection(port, host, function() {
clearTimeout(timer);
resolve();
socket.end();
});
socket.on('error', function(err) {
clearTimeout(timer);
reject(err);
});
});
}
checkConnection("example1.com", 8080).then(function() {
// successful
}, function(err) {
// error
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)