2017-12-01 6 views
0

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); 

Antwort

0

Nach vielen wertvollen Zeit zu verschwenden, fand ich heraus, dass mein Firewall das eingehende UDP-Paket wurde zu beschränken.

Verwandte Themen