问题标签 [unicast]

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 投票
1 回答
909 浏览

wireshark - 单播 mDNS 响应示例

我正在寻找显示 mDNS 单播响应的数据包捕获,该请求在 QUERY 字段中的单播响应位为 1 (QU) 的 mDNS 请求之后显示

我使用 Wireshark 捕获 QU 位为 0 的数据包并将其更改为 txt 文件,然后我使用 Scapy 在网络中发送它,但设备没有响应(设备响应 QU 位为 0)。设备是 Chromecast 3。我可以在网络上看到修改后的数据包,而wireshark 没有检测到异常

我想看看 chromecast 是否可以响应单播 mDNS QUERY。

0 投票
0 回答
127 浏览

c - 如何验证地址是单播的?

给定一个 IPv4 地址,我可以使用头文件中的IN_MULTICAST宏来验证该地址是否在 C 中是多播的。netinet/in.h同样,对于 IPv6,我可以使用IN6_IS_ADDR_MULTICAST来自netinet/in6.h.

有什么方法可以验证特定地址是单播的吗?这可能需要放弃其他寻址方法,如任播和广播。

理想情况下,但不一定,解决方案是 C 语言。

0 投票
1 回答
2464 浏览

raspberry-pi - 如何通过 PulseAudio RTP 单播将音频流式传输到 Raspberry Pi?

我正在尝试使用 PulseAudio RTP 将音频从 Linux Mint 桌面流式传输到运行 LibreELEC (Kodi) 的 RaspberryPi 3B。我可以使用 RTP 多播成功地流式传输音频:

桌面:

圆周率:

但我想使用 RTP 单播来避免与 RTP 多播相关的 UDP 数据包泛滥。这是我尝试过的:

桌面:

圆周率:

(如果我添加“sap_address=192.168.1.200”,我会得到“加载模块失败”)

没有音频通过 pi。可能有人知道如何让单播工作?

0 投票
2 回答
909 浏览

android - Android Exoplayer 播放 UDP 流无音频

我是 android webview 的新手,我使用 exoplayer 在 android webview 中播放视频,我播放了 2 个类别的视频,第一个 mp4,运行良好。第二个流媒体(单播 m3u8 和 UDP)视频播放良好但没有音频,我尝试在流 vlc 中播放源有音频,

这是我的代码。

对不起英语不好..

0 投票
1 回答
244 浏览

ip-address - CreateUnicastIpAddressEntry 后无法获取 UnicastIpAddressEntry

背景: 我正在尝试加快使用符合RFC7217的ipv6 地址。为此,我编写了代码来创建一个有效的可路由 ipv6 地址,例如2600:8806:2700:115:c4a3:36d8:77e2:cd1e. 我知道我需要在 windows 中输入新地址,然后才能绑定到它。我认为这两种方法可以解决问题。因此,使用我的一个 IP 地址,我执行了在CreateUnicastIpAddressEntry中找到的示例代码。然后,使用相同的 IP 地址,我执行了GetUnicastIpAddressEntry中的示例代码。

问题:

我希望再次检索 IP 地址。相反,我得到了ERROR_NOT_FOUND (2)。

分析: 我知道 IP 地址正在进入系统,因为如果我使用相同的 IP 地址再次运行 CreateUnicastIpAddressEntry,我会得到ERROR_OBJECT_ALREADY_EXISTS

问题:

有这两种 ip 方法经验的人知道这个错误代码在这种情况下是什么意思吗?对于这两种windows ip方法,输入和取回相同的ip地址是否合理?

CreateUnicastIpAddressEntry 的示例代码需要一些工作,因此如果有人想尝试,我可以将其与我的更改一起上传到某个地方。GetUnicastIpAddressEntry 示例代码几乎是开箱即用的。

编辑1:

以下是修改后的示例代码,说明了我必须进行的更改CreateUnicastIpAddressEntry()才能工作,MFC 才能创建套接字、绑定到它并监听它。

我修改的CreateUnicastIpAddressEntry()示例代码使其适用于 IPv6。我所有的评论都以 RT:date 开头。其余的都是原始示例代码编写者的。我还硬编码了一个特定生成的 IPv6 Slaac 地址,该地址2600:8806:2700取自我的特定路由器广告的前缀,bf72是子网 id,对我而言,它是一个介于 1 和 65535 之间的随机唯一数字。并且596c:919b:9499:e0db使用了一个符合 RFC7217 的接口 id这里用于测试目的。

运行此代码会将地址输入到内部地址表中。

这里是 MFC Socket、Bind 和 Listen 代码片段,展示了如何使用 MFC,以便它可以与 IPv6 ip 地址一起使用。Microsoft 文档说 MFC 不适用于 IPv6,但这是因为 Create 函数的地址族参数默认为 AF_INET (IPv4)。所以如果调用MFC的底层函数,地址族参数可以设置为AF_INET6。

这是修改后的 MFCSocket调用:

请注意单独的Bind调用,一个用于标准 MFC 代码的 AF_INET,另一个用于 AF_INET6。

这是绑定调用:

注意对 的调用EnterUnicastIpAddrIntoInternalTable()。这可能是您希望使用修改后的CreateUnicastIpAddressEntry()代码将新地址放入内部表的地方。

所有放在一起,IP 地址将显示LISTENINGnetstat -a.

0 投票
1 回答
68 浏览

bind - bind() 适用于 ipv6 无线适配器接口,但不适用于 ipv6 以太网(错误 10049)

背景

在我的程序开始时,我使用GetAdaptersAddresses构建了一个适配器接口地址的链接列表。后来,创建ipv6 slaac地址后,调用Socket()Bind()Listen()成功了,那里IfType是Wireless,也就是IfType71( IF_TYPE_IEEE80211)。我的过滤器参数是familyifType。我通过连接和断开以太网电缆进行测试。对于每种情况,我的软件都会找到具有上述参数的活动接口:连接它首先找到以太网,断开连接它没有找到以太网,然后进一步寻找无线接口。有关相关代码片段,请参阅 CreateUnicastIpAddressEntry 之后的 SO Unable to GetUnicastIpAddressEntry 。

问题

但是,如果接口IfType是 6 ( IF_TYPE_ETHERNET_CSMACD),则Socket()成功,但Bind()当然Listen()会失败。

问题

是否还有其他我遗漏的因素或接口参数可以决定结果?

尝试1

循环遍历所有 ipv6 接口只是为了凭经验确定是否有任何成功。两台机器上都没有。

尝试2

查找scope id并将其附加到地址,但是,我没有scope id在接口链接列表中看到该参数。

0 投票
0 回答
21 浏览

networking - Contiki 中的 MAC 层

每个节点的无线电传输都将被传输范围内的所有其他节点听到(WSN 的广播性质),我想知道节点在哪里检查传入的数据包是否发往它们(在 contikiOS 中)。

0 投票
1 回答
269 浏览

contiki - 如何在 Contiki 中通过单播使用 linkaddr_set_node_addr (linkaddr_t *addr)

我正在尝试使用此功能来设置在代码单播 contiki 中向其他节点发送数据包的节点,但此功能不起作用,有什么问题?你能帮我吗 !我想对需要的 2 个节点进行拓扑:如果节点 2 收到来自节点 1 的数据包,则节点 2 将数据包 ACK 发送到节点 1,以宣布节点 2 已收到来自节点 1 的数据包。我在 contiki 中使用单播程序。, 我使用函数linkaddr_set_node_addr (linkaddr_t *addr) 来设置节点1 发送数据包,但是这个函数不起作用,请有人帮助我。这是我的代码:

0 投票
0 回答
292 浏览

ffmpeg - 使用 ffmpeg 分析来自 Wirecast 的单播流

我正在使用 Wirecast 发送单播流。看起来像这样udp://@:5434。我正在尝试使用 ffmpeg 来分析这个流的 blackdetect 和 freezedetect。

到目前为止我尝试的是ffmpeg -i udp://@:5434 -filter:v blackdetect=d=9 -filter:a silencedetect=d=9 -t 10 -f null /dev/null,但是这给出了错误:Invalid data when processing the input

我可以通过打开 .sdp 文件来解码 VLC 中的单播。

对理解这一点的任何帮助都会很棒。谢谢!

有线广播单播设置的屏幕截图

0 投票
1 回答
39 浏览

networking - 多播场景中的接收者如何知道它应该监听哪个 IP 地址?

一台服务器正在流式传输视频,数据包的源 IP 是 192.168.1.1,目标多播 IP 是 239.1.1.1。

问题 1. 谁决定使用哪个组播 IP?是由服务器决定还是由听它的客户端决定?

  • 如果是通过服务器 -> 那么客户端如何知道它应该监听哪个组播 IP?
  • 如果是客户 -> 这是如何工作的?