问题标签 [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 投票
11 回答
51661 浏览

c - SO_BINDTODEVICE Linux 套接字选项的问题

我有一台带两张网卡的电脑。一个 ( eth0) 用于 LAN/互联网,另一个用于与一个微控制器设备的 UDP 通信。微控制器有一个 IP (192.168.7.2) 和一个 MAC 地址。第二个 pc 网络适配器 ( eth1) 有 192.168.7.1。

微控制器有一个非常简单的 IP 堆栈,因此 mc 发送 UDP 数据包的最简单方法是广播它们。

在 PC 端,我想接收广播 - 但只能来自eth1. 所以我尝试将 UDP 套接字绑定到eth1设备。

问题(下面的源代码):

  1. setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, device, sizeof(device))需要root权限,为什么?(设置其他选项以用户身份工作)

  2. getsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, (void *)buffer, &opt_length)给出“协议不可用”。我想读回我通过setsockopt命令设置的设备。

  3. 我在哪里可以找到好的信息?我检查了一些 Linux 编程、网络书籍,但例如SO_BINDTODEVICE我只能在互联网上找到的选项。

我冗长的(肮脏的)测试程序显示了问题。设置和取回SO_RCVTIMEOandSO_BROADCAST选项按预期工作。

在用户退出时运行代码:

使用 sudo 运行会给出:

那么,设置选项似乎有效,但无法读取它?

0 投票
3 回答
5040 浏览

.net - 如何监听任何端口上的广播数据包?

使用 .NET,我如何在任何端口上收听发送到 .255 的 udp 广播数据包,而无需绑定到特定端口?

0 投票
3 回答
15439 浏览

flash - 如何搭建服务器播放实时视频?

我需要建立一个系统来播放视频,就像 Youtube 一样。但是视频是实时视频,这意味着视频被捕获、转换并立即播放。有没有开源软件可以做到这一点?

我真的需要一些实用指南,包括要求(硬件和软件)。

先谢谢了~

0 投票
2 回答
2126 浏览

c# - 发件人未收到 UDP 广播

平台:Windows 2003 R2,C#

我有一个应用程序将 UDP 消息发送到自身的其他实例,在同一台计算机和其他计算机上运行。这工作正常。但是,在某些计算机上,侦听器无法听到同一台计算机上的其他线程/进程传输的消息。消息广播ok,网络上的其他机器听到消息,但同一台机器上的监听器听不到消息。

奇怪的是,这发生在我的测试环境中的某些机器上,但不是全部。

编辑:所有失败的机器都安装了 Check Point VPN-1 Securemote 客户端软件。我拿了一台可以工作的机器,安装了 VPN 客户端,现在它不能工作了。请注意,我没有连接到任何 VPN 主机,我只是安装了客户端。

所有机器都有一个网络适配器,子网掩码为 255.255.255.0,IP 地址为 10.3.10.xxx。

这是一个演示问题的测试类。用户键入一些文本,然后将其发送到 10.3.10.255。在某些机器上,ReceiveFrom 返回,而在其他机器上则不返回。我打电话给控制器(“10.3.10.255”,33333)

0 投票
5 回答
46804 浏览

android - Android - 如何接收广播意图 ACTION_SCREEN_ON/OFF?

MyBroadcastReceiver设置为将 foo 吐到日志中。什么也没做。请问有什么建议吗?我是否需要分配任何权限来捕捉意图?

0 投票
4 回答
1330 浏览

c++ - c ++将数据发送到多个UDP套接字

我有一个 c++ 非阻塞服务器套接字,所有客户端都存储在 std::map 结构中。

我可以为每个 clientObject 调用 send() 方法来向连接的客户端发送一些东西,这已经很好了。

但是对于向所有人发送消息(广播?)我想知道:有什么比对所有客户端执行 for/loop 并在每次迭代中调用 ClientObject->send("foo") 更好的方法?

还是我应该尝试查看多播套接字?

提前致谢。抹布。

0 投票
1 回答
5828 浏览

c# - 使用 Socket 发送对广播的回复

我正在尝试发送广播,然后让服务器回复它:

广播很好,但回复没有。不会抛出异常。谁能帮我?我必须为回复打开一个新连接吗?

编辑:稍微改变了我的代码,现在它可以工作了!感谢您的回复!

0 投票
4 回答
9286 浏览

udp - 对于 UDP 广播专家:通过 WiFi(802.11N 和 802.11G)实现高带宽音频 UDP 广播的问题

我正在尝试使用专用网络上的 UDP 广播通过 WiFi 将多声道音频从一台服务器发送到多台客户端计算机。

我正在使用名为 Pure Data 的软件,以及名为 netsend~ 和 netreceive~ 的 UDP 广播工具。代码在这里: http ://www.remu.fr/sound-delta/netsend~/

长话短说,我能够在点对点网络中将 9 个频道发送到一台客户端计算机,但是当我尝试向 2 个客户端广播时(还没有尝试更多),我得到了没有声音。我可以压缩音频并通过 UDP 广播成功地将 4 个压缩通道(未压缩大小的 10%)发送到 2 个客户端。或者我可以通过 UDP 广播向 2 个客户端发送 1 个频道,但会出现一些故障。

WiFi路由器是Linksys WRT300N。所有计算机都运行 Windows XP。IP 地址为 192.168.1.x,子网掩码为 255.255.255.0,子网广播地址:192.168.1.255。

我很好奇 - 路由器中的 UDP 广播数据包会发生什么?如果我的子网掩码为 255.255.255.0,那么路由器是否为从广播地址发送的每个数据包生成 254 个数据包?

我的 WiFi 带宽至少为 100Mbps,但我似乎无法通过 UDP 广播向多个客户端发送超过 10Mbps 以上的音频。

是什么阻止我发送音频达到 WiFi 的带宽限制?

任何关于套接字代码修改、网络设置、路由器设置、子网修改的建议......非常感谢!

谢谢尼克

0 投票
5 回答
8029 浏览

c - 如何忽略自己的广播 udp 数据包

对于以下我假设一个网卡。

我的程序有一个组件,旨在让子网中的其他人知道它的存在。为此,我实现了一个解决方案,每当程序启动时(以及之后定期),它都会向它发送一个广播INADDR_BROADCAST——任何在所需端口上监听的人都会记住它来自何处以供以后使用。

这样做的问题是我不想记住我自己的广播。我认为理论上这很容易做到 - 只需找出本地 ip 并与您获得的内容进行比较recvfrom

但是,我发现很难获得本地 IP:getaddrinfo使用 NULL 返回127.0.0.1getaddrinfo使用主机名返回公共 ip。谁能指出我找到实际子网 ip 的方向?我想我一定在这里遗漏了一些非常明显的东西,但是好吧……我仍然想念它:)

注意:我已经阅读了关于广播的其他 SO 问题,尤其是这个:UDP-Broadcast on all interfaces,但我还没有解决多接口问题。

0 投票
4 回答
386 浏览

c# - 内部 .net 应用程序宣布其位置和版本的良好广播机制?

我想为大量内部 .net 应用程序提供一种轻量级的方式来宣布它们正在被使用。我的目标是跟踪哪些用户可能会从支持签到和/或升级提醒中受益。

这是在内部网络上。所有机器之间肯定有IP连接,可能还有UDP。(但可能不是多播。)

写入已知的内部共享或加载已知的 URL 是可能的,但我希望尽可能完全地减少对应用程序本身的影响,即使以牺牲可靠性为代价。所以我宁愿不冒超时的风险(例如,如果我正在访问一些集中式资源并且它已经消失了),理想情况下我也不想启动工作线程。

允许多个听众也很好,这是我考虑广播而不是调用服务的另一个原因。

是否有某种我可以安全有效地使用的即发即弃广播机制?