【发布时间】:2016-02-25 13:46:43
【问题描述】:
我有一个 java 应用程序,我想在其中接收一个已知子网中的 udp 广播电报,例如 192.168.x.x (255.255.0.0)。如果我知道运行应用程序的机器的 IP,则以下工作(假设机器的 IP 是 192.168.10.1)
InetAddress ip = InetAddress.getByName("192.168.10.1");
DatagramSocket socket = new DatagramSocket(2222, ip);
但是如果 IP 不固定,可能来自 dhcp 服务器,我如何创建一个绑定到机器从 dhcp 服务器获取的 ip 的套接字。其他子网上可能还有其他接口,所以如果我会使用
DatagramSocket socket = new DatagramSocket(2222);
套接字不一定与 192.168.x.x 子网中的 ip 绑定。
我该如何解决这个问题?
【问题讨论】:
-
为什么?如果您绑定到 0.0.0.0,您将从任何地方收到。这在哪些方面不符合您的目标?
-
我想我误解了通配符,我认为绑定到 0.0.0.0 实际上会绑定到现有的 192.168.10.1,但据我所知,它会绑定到 0.0.0.0,这是任意的。这确实符合我的目标。