Node.js是否仍然支持UDP广播?

时间:2011-11-29 09:37:50

标签: node.js udp multicast

我调用了dgram.setBroadcast(flag),它在Node.js版本v0.6.3上返回了尚未实现的错误。

Node.js是否仍然支持UDP广播?

编辑:我发现some discussions表示广播已在0.5.x中删除,可能会在将来重新播放。

仍然 v0.6.6

我在Windows 7 x64中尝试过0.6.10,但多播还没有工作。

var dgram = require('dgram'); 
var PACKET_LEN = 64; 
var message = new Buffer(PACKET_LEN); 
var client = dgram.createSocket("udp4"); 
client.setMulticastTTL(128); 
//dgram.addMembership(multicastAddress, [multicastInterface]) 
client.addMembership('234.18.128.10', "172.18.128.64") ; 
// dgram.send(buf, offset, length, port, address, [callback]) 
client.send(message, 0, PACKET_LEN, 7000, "234.18.128.10"); 
client.close(); 

I got an "Error: addMembership EADDRNOTAVAIL".

在此之后: https://github.com/joyent/node/blob/master/test/simple/test-dgram-multicast-multi-process.js , 我终于在我的Windows PC上进行了多播工作。
node ver = 0.6.19

var dgram = require('dgram'); 
var message = new Buffer('this is my message'); 

var client = dgram.createSocket("udp4"); 
client.bind();
client.setBroadcast(true)
client.setMulticastTTL(128); 
client.send(message, 0, message.length, 5007, "224.1.1.1"); 
client.close();

1 个答案:

答案 0 :(得分:5)

今天是你的幸运日:在nodejs 0.6.9中重新引入了数据报支持。

http://blog.nodejs.org/2012/01/27/node-v0-6-9/