繁体   English   中英

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

[英]How to repair BindException: Cannot assign requested address?

我需要从客户端更改主机的IP地址。 我使用UDP命令和MulticastSocket获取此主机的IP地址(currentIp),并使用该IP地址成功建立TCP连接。 更改此主机IP地址的命令需要一个DatagramSocket,因为我需要首先获取要包含在change IP address命令中的主机设备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) {
        ...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM