gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:02:15 25 4
gpt4 key购买 nike

以下我假设有一张网卡。

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

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

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

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

最佳答案

在启动时,您可以广播一条具有随机(但可跟踪)值的不同消息,然后等待该消息,以发现您自己的地址,从那时起,您可以发送普通消息,忽略您的来源消息。

关于c - 如何忽略自己广播的udp包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1762101/

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