我想验证给定的IP和端口是否在MQTT中运行,否则我必须向用户显示异常。这是我的代码,
<div class="container-fluid">
<div class="row">
<div class="col-md-3">A</div>
<div class="col-md-6">
<div class="col-md-12">B1</div>
<div class="col-md-12">
<div class="col-md-8">B1.1</div>
<div class="col-md-4">B1.2</div>
</div>
<div class="col-md-12">
<div class="col-md-10">B2.1</div>
<div class="col-md-2">B2.2</div>
</div>
</div>
<div class="col-md-3">C</div>
</div>
</div>
当我提供正确的IP和端口然后它进入try {
MqttMessage message2 = new MqttMessage();
MQTT mqtt_connect = new MQTT();
mqtt_connect.setHost(Host_Address, port);
String topic = "/call/MQTT_Config";
mqtt_connect.setClientId("MQTT_Config");
mqtt_connect.setWillRetain(false);
mqtt_connect.isWillRetain();
mqtt_connect.setWillTopic(topic);
BlockingConnection m_publisher = mqtt_connect.blockingConnection();
m_publisher.connect();
if(m_publisher.isConnected()){
System.out.println("connected");
m_publisher.disconnect();
}
else
{
System.out.println("not connected");
return "Port or IP may not running";
}
} catch (Exception e) {
e.printStackTrace();
return "failure";
}
条件很好但是当我给出错误的IP或端口然后它到达if(m_publisher.isConnected())
然后没有任何事情发生,例如仅加载控制台。不会下一步。为什么呢?
当用户提供不匹配的IP或MQTT端口时,我必须显示一些验证。我在哪里做错了?
答案 0 :(得分:0)
此处的问题取决于用户输入的内容。
如果他们为存在但未在端口上侦听的计算机输入IP地址,则计算机将快速响应连接被拒绝消息
如果他们为不存在的机器输入IP地址,则代码将等待TCP超时(默认为15分钟),然后再产生错误。