【问题标题】:What is the meaning of 0.0.0.0 address while receiving broadcast (or other packets)?接收广播(或其他数据包)时 0.0.0.0 地址是什么意思?
【发布时间】:2019-09-22 21:16:50
【问题描述】:

我有两个脚本,第一个是发送广播,第二个是接收UDP数据包。仅当接收脚本将其 IP 地址设置(通过绑定)为 0.0.0.0 时,它才有效。为什么?这个地址应该是“不存在的地址”之类的,那么脚本怎么能把它设置成他自己的地址呢?为什么 127.0.0.1(或者确切地说是 192.168.0.xx)不起作用?

谢谢你,RA

【问题讨论】:

  • 0.0.0.0 与INADDR_ANY 相同,允许bind 选择任何接口。

标签: c udp ipv4


【解决方案1】:

可能您的机器有两个或多个具有不同 IP 的接口,因为您已经知道 127.0.0.1 IP 表示您的本地机器,而 192.168.0.xx 是路由器通过 DHCP 发送给您或由您静态分配的本地 IP, 0.0.0.0 是一个特殊地址,表示您机器的每个 IP 地址

所以如果你在 0.0.0.0 中绑定一些服务监听器,所有的 IP 都会受到影响。

例如,您需要只接收本地主机的流量,然后将服务器设置在 127.0.0.1,现在您还需要来自 192.168.0.xx 的流量,然后绑定到此 IP。但是,如果您需要该流量通过您绑定0.0.0.0 地址的所有 IP。如果您的计算机上有两个或多个接口运行在两个不同的 IP 上,服务器将同时监听这两个。希望我回答了你的问题!再见!

【讨论】:

    猜你喜欢
    • 2013-04-12
    • 2012-06-29
    • 2014-03-04
    • 1970-01-01
    • 2021-12-21
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多