我尝试使用Asmack库4.0.2连接到Openfire Server。即使我在端口上提供了正确的IP地址,也无法连接到服务器。
public static final String HOST = "192.168.1.100";
public static final int PORT = 9090;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connect();
}
public void connect(){
AsyncTask<Void, Void, Boolean> connectionThread = new AsyncTask<Void, Void, Boolean>(){
@Override
protected Boolean doInBackground(Void... arg0){
boolean isConnected = false;
ConnectionConfiguration config = new ConnectionConfiguration(HOST,PORT);
config.setReconnectionAllowed(true);
config.setSecurityMode(SecurityMode.disabled);
config.setDebuggerEnabled(true);
XMPPConnection connection = new XMPPTCPConnection(config);
try{
connection.connect();
Log.i("XMPPChatDemoActivity","Connected to " + connection.getHost());
isConnected = true;
} catch (IOException e){
Log.e("XMPPIOExceptionj", e.toString());
} catch (SmackException e){
Log.e("XMPPSmackException", e.toString()+" Host:"+connection.getHost()+"Port:"+connection.getPort());
} catch (XMPPException e){
Log.e("XMPPChatDemoActivity", "Failed to connect to "
+ connection.getHost());
Log.e("XMPPChatDemoActivity", e.toString());
}
return isConnected;
}
};
connectionThread.execute();
}
我得到以下错误可能因为主机和端口分别被指定为null和0,即使我已正确分配它们。请帮助我 整理出这个连接概率。
08-12 22:10:20.496: E/XMPPSmackException(4341):org.jivesoftware.smack.SmackException$NoResponseException Host:nullPort:0
答案 0 :(得分:0)
您能否确认端口9090
是XMPP协议的正确端口?默认安装Openfire将设置端口9090
以用于访问基于HTTP的配置控制台。我建议您尝试连接到Openfire配置控制台主索引页面上指定的XMPP连接端口(下面列出&#34;服务器端口&#34;)。
以下内容取自Openfire配置控制台:
5222 客户端连接服务器的标准端口。连接可能加密也可能不加密。您可以更新此端口的安全设置。
答案 1 :(得分:0)
我认为你的主机地址也是错误的,你必须使用地址来连接openfire服务器。它必须是&#34; 127.0.0.1&#34;或者只是写&#34; localhost&#34;。并且端口是5222,以便能够从客户端与服务器进行通信。