我需要从客户端更改主机的IP地址。 我使用UDP命令和MulticastSocket来获取此主机的IP地址(currentIp),并使用此IP地址成功建立TCP连接。 更改此主机IP地址的命令需要DatagramSocket,因为我需要首先获取要包含在更改IP地址命令中的主机设备MAC地址。建立TCP连接后,我关闭MulticastSocket UDP套接字,以便打开DatagramSocket但出现以下错误:
java.net.BindException:无法分配请求的地址:无法绑定
除了在尝试获取具有相同端口号的DatagramSocket套接字之前关闭MulticastSocket套接字之外,还有什么我需要做的,或者我是否遗漏了其他内容?
DatagramSocket socket;
private boolean ChangeIpAddress(String newIp) {
DatagramSocket socket;
try {
socket = new DatagramSocket(30718, InetAddress.getByName(currentIp));
} catch (SocketException ex) {
...
答案 0 :(得分:0)
您似乎使用的IP地址不正确的主机名。您需要找到etc/hosts
或其定义的位置。