我正在尝试使用 Java 创建一个 DHCP 客户端。客户端将发送 Discover,接收 Offer,发送 Request,并接收 Ack。但是,在发送发现和请求 UDP DatagramPackets 时,我需要从 IP 0.0.0.0 端口 68 发送它们,因为 DHCP 的目的是从 DHCP 服务器接收可用的 IP 地址。但是,如果我将我的套接字绑定到 0.0.0.0,根据http://download.oracle.com/javase/6/docs/api/java/net/DatagramSocket.html Java 参考,内核将分配一个 IP套接字的地址。
如果我强制将以太网卡的 IP 地址设置为 0.0.0.0
$ sudo ifconfig en0 0.0.0.0
并发送我的数据包;我收到一个
java.io.IOException: Can't assign requested address
例外。
有没有办法从 0.0.0.0 发送 UDP 数据包并设置System.exec()
(如果需要)使用 Java 从 DHCP 服务器接收的 IP 地址?