Wenn ich diesen Code ausführen, kann ich die Nachricht erfolgreich an die Broadcast-Adresse senden, aber es gibt keine Ausgabe auf dem Nachrichtenereignis-Listener. Derselbe Code funktioniert auf MacOS, aber nicht auf Ubuntu 16.04. Ich benutze Knoten v6.11.1.Warum ist der folgende Code nicht in der Lage, Broadcast-Adressen zu empfangen, bei denen die Nachricht erfolgreich an die Broadcast-Adresse in node.js gesendet wird?
var dgram = require('dgram');
var socket = dgram.createSocket('udp4');
var testMessage = "[hello world] pid: " + process.pid;
var broadcastAddress = '255.255.255.255';
var broadcastPort = 5555;
socket.bind(broadcastPort, '0.0.0.0', function(){
socket.setBroadcast(true);
});
socket.on("message", function (data, rinfo) {
console.log("Message received from ", rinfo.address, " : ", data.toString());
});
setInterval(function() {
socket.send(new Buffer(testMessage),
0,
testMessage.length,
broadcastPort,
broadcastAddress,
function (err) {
if (err) console.log(err);
console.log("Message sent");
}
);
}, 1000);