Xmpp 连接因 smack 失败
Posted
技术标签:
【中文标题】Xmpp 连接因 smack 失败【英文标题】:Xmpp connection failed with smack 【发布时间】:2015-07-08 11:02:23 【问题描述】:我目前有一个 android 应用程序,我在其中使用 smack 库连接到我的 XMPP 服务器。这个应用程序过去已经工作了,但是从今天开始,我的平板电脑无法连接到服务器。
上线:
connection.connect();
我收到了这个错误:
W/System.err﹕ org.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: '192.168.57.100:5222' failed because java.net.ConnectException: failed to connect to /192.168.57.100 (port 5222) after 30000ms: isConnected failed: EHOSTUNREACH (No route to host)
W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:596)
07-08 11:46:19.730 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:830)
07-08 11:46:19.730 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:360)
07-08 11:46:19.730 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at com.crisalid.EcranCuisine.PosteFabActivity$XMPPAsyncTask.doInBackground(PosteFabActivity.java:583)
07-08 11:46:19.730 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at com.crisalid.EcranCuisine.PosteFabActivity$XMPPAsyncTask.doInBackground(PosteFabActivity.java:284)
07-08 11:46:19.730 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
07-08 11:46:19.730 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-08 11:46:19.731 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
07-08 11:46:19.731 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-08 11:46:19.731 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-08 11:46:19.731 13812-14023/com.crisalid.EcranCuisine W/System.err﹕ at java.lang.Thread.run(Thread.java:848)
还有一些奇怪的事情:我在平板电脑和手机上安装了这个应用程序。使用完全相同的配置,我的手机上不会出现此错误,但我的平板电脑上会出现此错误。
我已经尝试在平板电脑上禁用/启用我的 wifi,但没有任何变化。 我检查了服务器是否已启动,并且正在运行。
你有什么想法吗?
【问题讨论】:
但是从明天开始 :) 回到未来?当然是网络环境(硬件/设置)错误... 从今天开始抱歉。如果是网络环境错误,应用程序不应该在我的任何设备上都无法运行? 但错误很明显:设备无法访问 192.168.57.100 ...因此,设备连接到不同/未路由的网络,如其他 WIFI 甚至 3g 连接...设置一些网络服务器在 192.168.57.100 然后使用设备上的浏览器并检查是否正常工作... 我在手机上禁用了 3g,并将手机和平板电脑连接在同一个网络上。我可以用手机连接到 xmpp 服务器,但不能用平板电脑连接。重启routeur有帮助吗? 【参考方案1】:Selvin 是对的,我的平板电脑连接到正确的 wifi,但 dhcp 将我的 IP 错误归咎于我。 在我的平板电脑上,IP 是 10.20.64.152,所以它不在良好的网络上(即 192.168.57.*)。
解决办法是设置一个静态ip。
【讨论】:
以上是关于Xmpp 连接因 smack 失败的主要内容,如果未能解决你的问题,请参考以下文章