Smack 连接到服务器失败

Posted

技术标签:

【中文标题】Smack 连接到服务器失败【英文标题】:Smack Connection to Server Failure 【发布时间】:2011-12-17 21:04:01 【问题描述】:

我在我的 Macbook 上成功设置了一个 ejabberd 服务器,并使用 iChat 和 Adium 对其进行了测试。我正在尝试设置 Jabberd/XMPP 客户端以在 android 操作系统上工作。以下代码在connection.connect() 方法上引发异常:

public void login(String username, String password) throws XMPPException 
    ConnectionConfiguration config = new ConnectionConfiguration("my-ejabberd-server-macbook.local", 5222);
    connection = new XMPPConnection(config);

    XMPPConnection.DEBUG_ENABLED = true;
    SASLAuthentication.supportSASLMechanism("PLAIN", 0);
    connection.connect();
    connection.login(username, password);

connection.connect() 方法调用上创建了以下异常:

XMPPError connecting to my-ejabberd-server-macbook.local:5222.: remote-server-error(502) XMPPError connecting to my-ejabberd-server-macbook.local:5222.
  -- caused by: java.net.SocketException: Host is unresolved: my-ejabberd-server-macbook.local

我在 Android Manifest 中只有以下权限:

<uses-permission android:name="android.permission.INTERNET" />

【问题讨论】:

你解决了这个问题吗?我也面临同样的情况。 【参考方案1】:

.local 下的名称由multicast DNS 解析,并非所有软件都可以处理。在本地测试时,您可以为其添加一个条目到your /etc/hosts file。

【讨论】:

以上是关于Smack 连接到服务器失败的主要内容,如果未能解决你的问题,请参考以下文章

smack 正在连接到 ejabberd 服务器

无法通过 smack 连接到 XMPP 服务器:服务器没有响应

使用 smack api 连接到 openfire 服务器

无法连接到本地 Openfire 服务器(使用 smack api)

Smack Android 客户端无法连接到 ejabberd 服务器

如何编写连接到服务器并回答用户的简单 smack 4.2.3 应用程序