当前位置: 首页 > 面试题库 >

发送广播数据报

龚招
2023-03-14
问题内容

我需要向连接到网络的所有计算机(服务器)发送广播数据报。

我正在使用NodeJS组播

客户

var dgram = require('dgram');
var message = new Buffer("Some bytes");
var client = dgram.createSocket("udp4");
client.send(message, 0, message.length, 41234, "localhost");
// If I'm in the same machine 'localhost' works
// I need to do something 192.168.0.255 or 255.255.255
client.close();

伺服器

 var dgram = require("dgram");

 var server = dgram.createSocket("udp4");

 server.on("message", function (msg, rinfo) {
   console.log("server got: " + msg + " from " +
     rinfo.address + ":" + rinfo.port);
 });

 server.on("listening", function () {
   var address = server.address();
   console.log("server listening " + address.address + ":" + address.port);
 });

 server.bind(41234);

谢谢。


问题答案:

我从未使用过Node.js,但我确实记得,使用Berkely套接字(这似乎是套接字使用最广泛的实现),您需要启用SO_BROADCASTsocket选项才能将数据报发送到广播地址。查找dgram文档,似乎有一个功能。

var client = dgram.createSocket("udp4");
client.setBroadcast(true);
client.send(message, 0, message.length, 41234, "192.168.0.255");

您可能想以编程方式找到广播地址,但是我无法为您提供帮助。



 类似资料:
  • 11.4.发送广播 最后,为触发这个事件,我们需要广播一条能够匹配filter的Intent。前面的BootReceiver只管接收来自系统的广播,也就没必要负责发送Intent。但对TimelineReceiver来说,它接收的广播是来自应用程序本身,发送Intent也就需要我们自己负责了。 在第八章 Service 中,我们为UpdaterService创建了一个内部类Updater,负责在独

  • 在GCM监听器中,我使用了PendingIntent.getBroadast(): 我不明白为什么MainActivity类中的onReceive没有被调用。不显示消息“已收到通知”。你能帮我吗?谢谢:)

  • 范例(定时广播) use WorkermanWorker; use WorkermanLibTimer; require_once __DIR__ . '/Workerman/Autoloader.php'; $worker = new Worker('websocket://0.0.0.0:2020'); // 这个例子中进程数必须为1 $worker->count = 1; // 进程启动时

  • 本文向大家介绍Android入门:广播发送者与广播接收者详细介绍,包括了Android入门:广播发送者与广播接收者详细介绍的使用技巧和注意事项,需要的朋友参考一下 一、广播发送者&广播接收者介绍 1.广播接收者 广播接收者简单地说就是接收广播意图的Java类,此Java类继承BroadcastReceiver类,重写: public void onReceive(Context context,I

  • 我最近使用HPFortify服务对我的Android源代码做了一次代码扫描。他们报告了一个广播接收器和发送器的安全漏洞。广播发送器和接收器是应用程序内部的,而意图不是发送到应用程序外部的。这些主要用于内部交流。HPFortify建议使用广播者权限来减少攻击矢量。这样你就限制了broadcaster,否则任何恶意应用程序都可以发送意图,而broadcast receiver将处理它。类似地,他们建议

  • 在文档的socket.io客户端套接字部分http://socket.io/docs/client-api/#io#socket指的是套接字文档,这意味着服务器套接字对象和客户端套接字对象是相同的。