问题标签 [broadcast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7488 浏览

linux - UDP广播和单播通过同一个套接字?

我有一个 Linux 应用程序,它打开一个 UDP 套接字并将其绑定到一个端口。我通过套接字发送单播数据包没有任何问题。我有机会发送一个广播数据包,所以我启用了 SO_BROADCAST,它允许广播数据包通过,但随后我注意到单播数据包也在广播。这是 UDP 套接字的预期行为,还是我配置错误的可能性更大?

0 投票
4 回答
9217 浏览

c# - 仅从特定适配器(例如 192.168.101.1)发送 UDP 广播(255.255.255.255);在 Windows 上

适用于 Windows XP 或更高版本的解决方案。最好在 C# 或 C++ 中。

我们不想使用子网定向广播(例如 192.168.101.255)进行广播,因为我们尝试联系的设备对此没有响应。相反,我们希望能够仅从特定的 NIC/IPAddress 发送目的地为 255.255.255.255 的 UDP 数据报,这样广播就不会在其他 NIC 上发送出去。

这意味着我们必须绕过 IP 堆栈,这就是问题所在。我们如何绕过 Windows 上的 IP 堆栈,仅从特定的 NIC/MAC 地址发送符合 UDP/IP 的数据报?

0 投票
5 回答
8848 浏览

java - Linux 上的 Java:在绑定的本地地址上监听广播消息

我有一个有点奇怪的要求,即能够在 Linux 机器上监听来自 Java 的多个网络接口,并确定其中一个是否接收到某种类型的 UDP 数据包。我需要的输出数据是相关接口的 IP 地址。有没有办法在Java中做到这一点?

监听通配符地址 (new DatagramSocket(port)) 并没有帮助,因为虽然我确实收到了广播数据包,但我无法确定它们通过的接口的本地 IP 地址。在绑定到某个接口(new DatagramSocket(port, address))时收听广播根本不会收到数据包。这个案例值得一个代码示例来展示我正在尝试做的事情:

我还尝试使用基于接口的真实 IP 开头构造的广播地址初始化套接字,其余的根据正确的网络掩码进行初始化:

这只是在构造 DatagramSocket 时抛出一个 BindException。

编辑:使用广播地址(例如 126.255.255.255)调用 DatagramSocket 的构造函数的 BindException(java.net.BindException:无法分配请求的地址)仅随最新的 Ubuntu 9.04 提供(可能不是 Ubuntu,但内核版本特定的问题) . 使用 Ubuntu 8.10,以及我正在处理的 Red Hat 版本(RHEL 4.x)。

显然,在绑定到某个本地 IP 时不接收数据包是正确的行为,尽管在 Windows 中这是有效的。我需要让它在 Linux(RHEL 和 Ubuntu)上运行。对于低级 C 代码,有一种解决方法 setsockopt(SO_BINDTODEVICE),我在 Java-API 中找不到它。不过,这并不完全让我充满乐观:-)

0 投票
1 回答
14909 浏览

c# - 在 C# 中接收广播消息

我已经尝试了很多,但不知何故,接收远程主机广播的数据报的代码似乎存在一些问题。

那么有人可以向我提供使用 UDP 连接在 C# 中接收广播消息的代码吗?

0 投票
1 回答
527 浏览

windows - 在多宿主系统上接收 UDP 广播

我有一台带有多个网络适配器的 Windows XP 机器。当我从另一台没有有效 IP 地址的机器收到 UDP 广播包时,我如何确定是哪个网络适配器收到了这个包?

我需要在自定义 DHCP 服务器上实现一种...

0 投票
2 回答
4211 浏览

python - 使用 Rabbitmq 和 Python 进行 Stomp 广播

我试图将系统从使用 morbid 转移到 rabbitmq,但我似乎无法获得默认提供的相同广播行为 morbid。通过广播,我的意思是当一条消息被添加到队列中时,每个消费者都会收到它。使用rabbit,当添加消息时,它们会以循环方式分发给每个听众。

谁能告诉我如何实现相同的消息分发?

下面使用的 stomp 库是http://code.google.com/p/stomppy/

如果无法使用 stomp,即使是 amqplib 示例也会有帮助。

我目前的代码看起来像这样

消费者

发件人看起来像这样

0 投票
2 回答
17681 浏览

wcf - 如何从服务器向 WCF 中的所有客户端发送通知消息(可以说是广播)?

我想每秒从 net tcp WCF 服务向所有客户端发送通知消息,你可以说广播吗?

在有用的答案之后

我编写了以下方法,它将向所有连接的用户发送通知(心跳)

我担心调用回调方法,因为客户端可能会关闭他的应用程序,但我使用 try catch 处理它,减少超时,并并行发送广播,这样就足够了吗?

0 投票
2 回答
1895 浏览

audio - 将音频广播到网站

我正在寻找学习资料、示例、学习我需要从酒吧音频广播直接广播到网站的内容。

0 投票
7 回答
18935 浏览

c# - C# UDP 广播客户端/服务器不起作用

我正在使用 .NET 2.0 并创建了一个相当简单的 udp 广播应用程序和 UDP 侦听器。

监听代码:

服务器代码:

服务器只是一个简单的 Windows 应用程序,带有 3 个单选按钮、按钮和一个文本框。

当我在单独的计算机上运行服务器并选择 radioButton3 时,我在客户端侦听器(在 IP 地址 172.16.75.15 上运行)上收到了很好的消息。但是,如果我选择第一个或第二个单选按钮(创建广播或 255.255.255.255 作为 IP 地址),我什么也得不到。现在,如果我在与服务器相同的电脑上运行客户端,我可以使用这两个选项接收消息。

我不确定我做错了什么,或者是否有某种防火墙阻止了局域网上的 UDP 消息。有任何想法吗?

谢谢,

克雷格

0 投票
2 回答
3825 浏览

c# - 为什么我会收到两倍于通过 UDP 广播发送的数据?

我对下面的代码有疑问。它的作用是使用 UDP 广播发送当前日期/时间并收听此消息。我当前使用此代码是本地的,我在同一台计算机上的同一应用程序中使用发送和接收。我还没有在两台电脑之间尝试过。

我遇到的问题是它发送一次数据(当我单击一个按钮时),但它收到的数据量是预期的两倍。例如,一个正常的日期/时间长 19 个字节,但第一次 Available 大于 0,它的值为 38。接下来的 Receive 调用只获取 19 个字节,循环继续接下来的 19 个字节。这意味着我收到我的信息两次,当然我只想要一次。

输出示例: