gpt4 book ai didi

c - 强制通过网络进行 UDP 广播(禁用环回)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:15 27 4
gpt4 key购买 nike

我想向网络上的多个设备发送 UDP 广播数据报,包括发送方设备本身。目标是让所有设备同时接收数据(好吧,+/- 5 毫秒是可以的)。

问题是发送设备上的网络接口(interface)正在环回数据,因此它会立即被接收(与网络延迟发挥作用的其他设备相比——例如 Wifi 相当长)

知道如何禁用我的网络接口(interface)以直接环回数据吗?

我的另一个想法:是否可以创建一个虚拟网络接口(interface)来发送广播数据包并在另一个仅通过网络接收它的接口(interface)上监听?

我正在尝试在 Linux 机器上用 C 语言来做这件事。任何帮助将不胜感激!

最佳答案

UDP 作为 IP 负载发送。 IP 数据包的路由是 IP 堆栈的一个域。它决定数据包如何传输到目的地。当您的 IP 堆栈检测到目标是本地主机时,它会将数据包排入接收队列,并且数据包将立即可用。如果您的适配器的发送队列已满,您将有延迟。所以你不能和这个概念同步。

如果您需要硬同步,您应该使用 NTP 或 SNTP 来同步时钟并为您所需的常见操作定义注释开始时间。

编辑:(S)NTP 协议(protocol)旨在实现毫秒级同步。由于我上面描述的原因,您将获得任何 UDP 数据包传输都无法实现的精度。

关于c - 强制通过网络进行 UDP 广播(禁用环回),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29649352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com