2013-05-27 105 views
2

我试图在Node中实现一个BOOTP服务器,为此,广播是必需的。可悲的是,这些文件有点混乱,我一直在发现奇怪的错误。有趣的是,在Windows 7和Ubuntu上的错误是不同的。在Node.js中发送和接收来自255.255.255.255的UDP广播

有人真的设法发送一个UDP广播到255.255.255.255或接收一个在这个地址下?

有人能给我一个简单的节点UDP广播演示?

回答

0

使用punt我试图端口5000255.255.255.255连接绑定,我得到这个错误EADDRNOTAVAIL

我想上的地址过于笼统。看到这个link

这里是代码,它只是一个punt示例的稍微修改版本。

var punt = require('punt'); 
var server = punt.bind('255.255.255.255:5000'); 
var a = punt.connect('255.255.255.255:5000'); 

server.on('message', function(msg){ 
    console.log(msg); 
}); 

setInterval(function(){ 
    a.send({ hello: 'world' }); 
}, 150); 

它产生这样的错误:

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: bind EADDRNOTAVAIL 
    at errnoException (dgram.js:439:11) 
    at dgram.js:206:28 
    at dns.js:72:18 
    at process._tickCallback (node.js:415:13) 
    at Function.Module.runMain (module.js:499:11) 
    at startup (node.js:119:16) 
    at node.js:901:3 
+0

'EADDRNOTAVAIL'是同样的错误,我得到在Windows机器上。然而,你是否设法播出,比如说'192.168.1.255'?剩下的问题是,根据[RFC 951](http://www.ietf.org/rfc/rfc951.txt),“BOOTP”只能广播到“255.255.255.255”。 – buschtoens