【发布时间】:2011-07-28 02:08:59
【问题描述】:
我正在尝试使用 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 地址设置?
【问题讨论】: