如何修复BindException:无法分配请求的地址?

时间:2012-03-05 16:47:41

标签: java udp

我需要从客户端更改主机的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) {
        ...

1 个答案:

答案 0 :(得分:0)

您似乎使用的IP地址不正确的主机名。您需要找到etc/hosts或其定义的位置。