Node.js 还支持 UDP 广播吗?

发布于 2024-12-18 22:01:15 字数 1342 浏览 2 评论 0原文

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

Node.js 还支持 UDP 广播吗?

编辑:我发现一些讨论说广播在 0.5.x 中被删除,并且可能会在将来重新出现。

仍然尚未在 v0.6.6 中实现

我尝试过0.6.10 在 windows 7 x64 中,多播尚未工作。

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 电脑上实现了多播工作。
节点版本=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();

I called dgram.setBroadcast(flag) and it returned a not yet implemented error on Node.js version v0.6.3.

Does Node.js still support UDP broadcasting?

Edit: I found some discussions said that broadcast was removed in 0.5.x and probably be back in the future.

still not yet implemented in v0.6.6

I tried 0.6.10 in windows 7 x64, the multicast did not work yet.

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".

after ref here: https://github.com/joyent/node/blob/master/test/simple/test-dgram-multicast-multi-process.js ,
I finally make multicast work on my 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();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

痴意少年 2024-12-25 22:01:15

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

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

Today's your lucky day: Datagram support was reintroduced in nodejs 0.6.9.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文