我正在运行通过mqtt通信的Java应用程序。我可以使用IPv4地址进行通信,但是在尝试与IPv6地址进行通信时遇到问题。
我已将路由器配置为提供IPv6地址。将笔记本电脑连接到路由器后,我可以获得IPv6地址。当我为localhost运行代码时,它工作正常。
下面是我用来在IPv6上运行localhost代码的代理,它可以正常工作。
String broker = "tcp://::1:1883";
但是当我尝试连接到同一网络上另一台设备的IP地址时,却出现错误。
String broker = "tcp://[fe80::54d0:e4dd:96f4:98ca%wlx9cd643864a24]:1883";
我也尝试过不使用下面给出的接口名称。但是会出现同样的错误。
String broker = "tcp://[fe80::54d0:e4dd:96f4:98ca]:1883";
错误:
Connecting to broker: tcp://[fe80::54d0:e4dd:96f4:98ca%wlx9cd643864a24]:1883 reason 0 msg MqttException loc MqttException
cause java.net.UnknownHostException: [fe80 excep MqttException (0) - java.net.UnknownHostException: [fe80 MqttException (0) - java.net.UnknownHostException: [fe80
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:664) at java.lang.Thread.run(Unknown Source)