Node.js无法在Ubuntu上接收UDP广播

时间:2014-03-14 14:22:11

标签: node.js ubuntu udp broadcast

我在通过Wi-Fi连接的两台计算机上运行了以下Node.js代码:

var net = require('net');
var dgram = require('dgram');

var inputSocket = dgram.createSocket('udp4');
inputSocket.on('message', function (msg, rinfo) {
    console.log("Got message \"" + msg.toString() + "\" from " + rinfo.address);
});
inputSocket.bind(1234, '255.255.255.255', function () {
    inputSocket.setBroadcast(true);
});

outputSocket = dgram.createSocket('udp4');
outputSocket.bind(function () {
    outputSocket.setBroadcast(true);
});
setInterval(function () {
    var message = new Buffer('hello!');
    outputSocket.send(message, 0, 6, 1234, '255.255.255.255');
}, 500);

在第一台计算机上(运行Crunchbang Linux)代码运行正常,并显示来自两台机器的广播:

Got message "hello!" from 192.168.43.53
Got message "hello!" from 192.168.43.180
Got message "hello!" from 192.168.43.53
Got message "hello!" from 192.168.43.180

但是,在第二个(运行Ubuntu)上,它只显示自己发送的广播:

Got message "hello!" from 192.168.43.180
Got message "hello!" from 192.168.43.180

第二台计算机上的防火墙已禁用;两台计算机都安装了相同版本的Node.js(v0.10.26)。

如何解决此问题?更具体地说,我希望第二台计算机接收从本地网络发送到255.255.255.255的所有广播。

0 个答案:

没有答案