我正在创建一个节点应用程序,它将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]);
}
}