发送许多数据包时,Node.js dgram UDP失败

时间:2016-05-10 04:57:00

标签: node.js sockets udp

我正在创建一个节点应用程序,它将UDP数据包发送到另一台机器。当数据包发送大约100 /秒时,一切似乎都能正常工作。当该数字高于500 /秒时,数据包将停止发送。因为Wireshark没有让他们离开我的电脑,我不认为他们正在被扯下来。

const dgram = require("dgram");

var sent = 0;
var server = dgram.createSocket("udp4");

function sendCommand(text){

    // Put command into a buffer
    var buffer = new Buffer(text);

    // Send the command
    server.send(buffer, 0, buffer.length, 12345, 19.5.6.45, (err) => {
        sent++;
    });

}

sendCommand()函数是内部调用的。就像我说每秒100次通话没问题。当它变高时它就会停止工作。

"发送" var停止递增所以这导致我认为节点dgram有故障并且server.send()未正确触发。除非我重新启动程序,否则它似乎无法恢复。

这是我第一次在Stack Overflow上发帖,如果我做错了,我道歉。

编辑:

这是函数从中触发的位置。

// Loop through the channels
for (var i = 0; i < ids.length; i++) {

    // Check if the channel is locked
    if (!toBool(data.locks[i])) {

        // Send the UDP command
        sendCommand(ids[i]);

    }

}

0 个答案:

没有答案