簡體   English   中英

使用node.js讀取和寫入多個ip

[英]Reading from and writing to multiple ip's with node.js

我已經閱讀過Node.js的教程,但似乎一切都是針對從服務器端如何處理它。 我正在玩它,看看如何使用非阻塞i / o寫入我們網絡上的多個設備。 這是我到目前為止(粗略的代碼,對不起):

var net = require('net');

var nodes = [<list of IP addresses>];

function connectToServer(ip) {
        conn = net.createConnection(3083, ip);
         console.log ("Creating connection to: " + ip + "\n");
        conn.on('connect', function() {
                conn.write ("act-user::myuser:ex1::mypass;");
        });
        conn.on('data', function(data) {
                var read = data.toString();
                if (read.match('ex1'))
                {
                        console.log(ip + ": " + read);
                }
        });
        conn.on('end', function() {
        });
}

nodes.forEach(function(node) {
        connectToServer(node);
});

我看到它通過列表並啟動與每個IP地址的連接,但是它似乎一遍又一遍地將登錄行寫入同一主機。 我覺得某個地方我正在讓我的溪流交叉(就像Egon說永遠不會這樣),但我不確定如何解決它。 非阻塞node.js世界仍然很難讓我思考。

你的問題是一個JavaScript糾結。 在JavaScript中,如果在其之前定義了沒有var的變量,則將其設置為global。 這發生在connectToServer()函數中的conn變量中。 conn被覆蓋,並且在退出connectToServer范圍后不會重置。

嘗試在以下前面添加var。

conn = net.createConnection(3083, ip);

結果

var conn = net.createConnection(3083, ip);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM