问题标签 [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.
wireshark - 单播 mDNS 响应示例
我正在寻找显示 mDNS 单播响应的数据包捕获,该请求在 QUERY 字段中的单播响应位为 1 (QU) 的 mDNS 请求之后显示
我使用 Wireshark 捕获 QU 位为 0 的数据包并将其更改为 txt 文件,然后我使用 Scapy 在网络中发送它,但设备没有响应(设备响应 QU 位为 0)。设备是 Chromecast 3。我可以在网络上看到修改后的数据包,而wireshark 没有检测到异常
我想看看 chromecast 是否可以响应单播 mDNS QUERY。
c - 如何验证地址是单播的?
给定一个 IPv4 地址,我可以使用头文件中的IN_MULTICAST
宏来验证该地址是否在 C 中是多播的。netinet/in.h
同样,对于 IPv6,我可以使用IN6_IS_ADDR_MULTICAST
来自netinet/in6.h
.
有什么方法可以验证特定地址是单播的吗?这可能需要放弃其他寻址方法,如任播和广播。
理想情况下,但不一定,解决方案是 C 语言。
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。可能有人知道如何让单播工作?
android - Android Exoplayer 播放 UDP 流无音频
我是 android webview 的新手,我使用 exoplayer 在 android webview 中播放视频,我播放了 2 个类别的视频,第一个 mp4,运行良好。第二个流媒体(单播 m3u8 和 UDP)视频播放良好但没有音频,我尝试在流 vlc 中播放源有音频,
这是我的代码。
对不起英语不好..
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 地址将显示LISTENING
为netstat -a
.
bind - bind() 适用于 ipv6 无线适配器接口,但不适用于 ipv6 以太网(错误 10049)
背景
在我的程序开始时,我使用GetAdaptersAddresses构建了一个适配器接口地址的链接列表。后来,创建ipv6 slaac
地址后,调用Socket()
,Bind()
都Listen()
成功了,那里IfType
是Wireless,也就是IfType
71( IF_TYPE_IEEE80211
)。我的过滤器参数是family
和ifType
。我通过连接和断开以太网电缆进行测试。对于每种情况,我的软件都会找到具有上述参数的活动接口:连接它首先找到以太网,断开连接它没有找到以太网,然后进一步寻找无线接口。有关相关代码片段,请参阅 CreateUnicastIpAddressEntry 之后的 SO Unable to GetUnicastIpAddressEntry 。
问题
但是,如果接口IfType
是 6 ( IF_TYPE_ETHERNET_CSMACD
),则Socket()
成功,但Bind()
当然Listen()
会失败。
问题
是否还有其他我遗漏的因素或接口参数可以决定结果?
尝试1
循环遍历所有 ipv6 接口只是为了凭经验确定是否有任何成功。两台机器上都没有。
尝试2
查找scope id
并将其附加到地址,但是,我没有scope id
在接口链接列表中看到该参数。
networking - Contiki 中的 MAC 层
每个节点的无线电传输都将被传输范围内的所有其他节点听到(WSN 的广播性质),我想知道节点在哪里检查传入的数据包是否发往它们(在 contikiOS 中)。
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 发送数据包,但是这个函数不起作用,请有人帮助我。这是我的代码:
networking - 多播场景中的接收者如何知道它应该监听哪个 IP 地址?
一台服务器正在流式传输视频,数据包的源 IP 是 192.168.1.1,目标多播 IP 是 239.1.1.1。
问题 1. 谁决定使用哪个组播 IP?是由服务器决定还是由听它的客户端决定?
- 如果是通过服务器 -> 那么客户端如何知道它应该监听哪个组播 IP?
- 如果是客户 -> 这是如何工作的?