No connected to server.
在上家公司很闲就略研究了一下即时通讯XMPP+openfire+asmark,注册登录都是成功的,后来一直忙着做项目就没继续,这几天要写论文,就想继续研究下去,就把这个作为论文题目了。重新配置了openfire,用的之前的注册登录代码,问题来了,还是连不上服务器,网上的方法都用了就是连不上,用模拟器也不行,在这里我忽略了个问题,在一般的Java Web程序开发中,我们通常使用localhost或者127.0.0.1来访问本机的Web服务,但是如果我们在Android模拟器中也采用同样的地址来访问,Android模拟器将无法正常访问到我们的服务,这是为什么呢?我们可以这样来理解:Android的底层是Linux kernel,包括Android本身就是一个操作系统,因此,这时我们在模拟器的浏览器中输入的localhost或127.0.0.1所代表的是Android模拟器(Android虚拟机),而不是你的电脑,明白了吗?这就是为什么你在模拟器中使用localhost时会报“Web page not available”的原因。
那到底要如何才能访问到本地电脑上的Web应用呢?在Android中,将我们本地电脑的地址映射为10.0.2.2,因此,只需要将原先的localhost或者127.0.0.1换成10.0.2.2,就可以在模拟器上访问本地计算机上的Web资源了。
// url、端口,也可以设置连接的服务器名字,地址,端口,用户。
ConnectionConfiguration connConfig = new ConnectionConfiguration("10.0.2.2", 5222);
这样改过之后用模拟器测试的话就没问题了,又能注册登陆了,可是真机行不行呢,~。 ~!
我的服务端是在公司的电脑上配置的,起初真机用的是公司给配的3G电信卡,我换成公司的wifi后连接成功了。
原因:
之所以真机连不上是因为服务端和客户端不在一个网段,真机连上公司wifi后服务端和客户端就在一个网段了~。 ~