私の状況は次のとおりです。IPアドレスの配列があります。リモートサーバーに接続するために各IPをテストします。1つのIPが接続された場合、残りのIPは無視され、接続されません。
次のNode.JSコードを使用して作業を行いましたが、機能していないようです。ヒントを教えてください。ありがとう!
// serverip is a var of string splitted by ";", e.g. "ip1;ip2;ip3"
var aryServerIP = serverip.split(";");
console.log(aryServerIP);
var ipcnt = aryServerIP.length; // ipcnt = 3, for example
for (ip in aryServerIP)
{
console.log("to process: " + ipcnt); // error here: always print 3
var net = require('net');
var client = new net.Socket();
var rdpport = 3389;
client.connect(rdpport, aryServerIP[ip], function(){
console.log("socket connected to " + aryServerIP[ip] + ":" + rdpport);
client.destroy();
if (0 != ipcnt)
{
// do some real connection work about aryServerIP[ip].
ipcnt--;
}
});
client.on('error', function(){
console.log("fail to connect to " + aryServerIP[ip] + ":" + rdpport);
ipcnt--;
});
}
ipcnt countを使用してループを制御するのは悪いことですが、ループ内に非同期関数が呼び出されたときにNode.JSループを制御する方法がわかりません...