android - XMPP客户端无法连接到XMPP本地主机服务器

android - XMPP客户端无法连接到XMPP本地主机服务器

问题描述:

我在android下面的代码 - 我使用asmack API。android - XMPP客户端无法连接到XMPP本地主机服务器

public XMPPManager(String server, int port) { 
    this.server = server; 
    this.port = port; 

    SmackConfiguration.setPacketReplyTimeout(packetReplyTimeout); 
    config = new ConnectionConfiguration(server, port); 
    config.setSASLAuthenticationEnabled(false); 
    config.setSecurityMode(SecurityMode.disabled); 
    connection = new XMPPConnection(config); 
    try { 
     connection.connect(); 
     connection.login(user, pass); 
    } catch (XMPPException e) { 
     Log.w("Cannot connect to server.", "0"); 
     e.printStackTrace(); 
    } 
    if (connection.isAuthenticated()) { 
     AccountManager manager = connection.getAccountManager(); 
     try { 
     manager.createAccount("test", "test"); 
     } catch (XMPPException e) { 
     Log.w("Cannot create new user -----" + " on the XMPP server.", "0"); 
     } 
    } 

    } 

我在XMPPClient活动创建XMPPManager类的一个实例是这样的:

public class XMPPClient extends Activity { 
    private String username = "user"; 
    private String password = "pass"; 
    private String host  = "127.0.0.1"; 
    private int port  = 5222; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    try { 
     super.onCreate(savedInstanceState); 

     XMPPManager xmppManager = new XMPPManager(host, port); 
    } catch (Exception e) { 

    } 
    } 

} 

我得到的问题如下:

W/Cannot connect to server.(1052): 0 
W/System.err(1052): XMPPError connecting to 127.0.0.1:5222.: remote-server-error(502) XMPPError connecting to 127.0.0.1:5222. 
W/System.err(1052): -- caused by: java.net.ConnectException: /127.0.0.1:5222 - Connection refused 
W/System.err(1052): at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:562) 
W/System.err(1052): at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:991) 
W/System.err(1052): at company.games.boxer.XMPPManager.<init>(XMPPManager.java:45) 
W/System.err(1052): at company.games.boxer.XMPPClient.onCreate(XMPPClient.java:17) 
W/System.err(1052): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
W/System.err(1052): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
W/System.err(1052): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
W/System.err(1052): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
W/System.err(1052): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
W/System.err(1052): at android.os.Handler.dispatchMessage(Handler.java:99) 
W/System.err(1052): at android.os.Looper.loop(Looper.java:123) 
W/System.err(1052): at android.app.ActivityThread.main(ActivityThread.java:4627) 
W/System.err(1052): at java.lang.reflect.Method.invokeNative(Native Method) 
W/System.err(1052): at java.lang.reflect.Method.invoke(Method.java:521) 
W/System.err(1052): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
W/System.err(1052): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
W/System.err(1052): at dalvik.system.NativeStart.main(Native Method) 
W/System.err(1052): Nested Exception: 
W/System.err(1052): java.net.ConnectException: /127.0.0.1:5222 - Connection refused 
W/System.err(1052): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:254) 
W/System.err(1052): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:533) 
W/System.err(1052): at java.net.Socket.connect(Socket.java:1055) 
W/System.err(1052): at java.net.Socket.connect(Socket.java:997) 
W/System.err(1052): at org.jivesoftware.smack.proxy.DirectSocketFactory.createSocket(DirectSocketFactory.java:28) 
W/System.err(1052): at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:550) 
W/System.err(1052): at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:991) 
W/System.err(1052): at company.games.boxer.XMPPManager.<init>(XMPPManager.java:45) 
W/System.err(1052): at company.games.boxer.XMPPClient.onCreate(XMPPClient.java:17) 
W/System.err(1052): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
W/System.err(1052): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
W/System.err(1052): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
W/System.err(1052): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
W/System.err(1052): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
W/System.err(1052): at android.os.Handler.dispatchMessage(Handler.java:99) 
W/System.err(1052): at android.os.Looper.loop(Looper.java:123) 
W/System.err(1052): at android.app.ActivityThread.main(ActivityThread.java:4627) 
W/System.err(1052): at java.lang.reflect.Method.invokeNative(Native Method) 
W/System.err(1052): at java.lang.reflect.Method.invoke(Method.java:521) 
W/System.err(1052): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
W/System.err(1052): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
W/System.err(1052): at dalvik.system.NativeStart.main(Native Method) 

任何想法为什么我收到“无法连接到服务器”。错误?先谢谢你。

+0

你试过我的答案..? – user370305 2011-12-20 06:32:43

我觉得这条线,

private String host = "127.0.0.1"; 

是导致异常..所以..尝试

private String host = "10.0.2.2";系统的公共IP

Bco'z Android不明白127.0。作为本地主机,你的系统为0.1 ip,这个ip用于仿真器本身。(回送地址)

+0

这正是发生了什么事情。更改IP地址有帮助。谢谢。 – eleanor 2011-12-20 13:31:07

检查是否你的xmpp服务器配置正确,你可以连接到它。您可以使用任何其他第三方xmpp客户端连接&测试您的服务器。