Android怎么开发一个点对点的聊天

Android如何开发一个点对点的聊天?
我不知道这个问题要子Android论坛发呢,还是到数据库那边发,由于本人不懂数据库,也不知道这个是否要用到服务器,希望大虾们帮我分析分析啊~~谢谢了~~~

问题:我想实现一个简单的功能:两台 Android 手机都连到WIFI联网(在不同的局域网),不使用3G或者其他网络,只用WIFI。想弄一个点对点的app聊天工具(有点像QQ那种),可以添加好友,然后点击好友头像进行聊天,只要简单的文字或者abc就好。但是我不知道,这个到底要如何实现。
(1).  我捉摸了很久,觉得中间应该有一个服务器,但是不知道这个服务器要是什么?(比如说是web服务器?数据库空间?····这些都不了解额。。。。我觉得中间的服务器应该就是记录账号和密码用的,每当app登入和同步好友的时候,都到那个服务器上同步下来)
(2).当点击好友号码,进行聊天的时候,这个又是一个问题了。我在局域网内部,有弄过几个简单的点对点聊天,但是这个事局域网,知道对方的IP和PORT。而我现在是外部网络,不知道这个事如何实现的额····我见过有人自己开发过这种聊天工具,简单的聊聊天。不知道Android代码是如何实现的?或者是服务器上面是如何实现的?

希望大神们指点指点额~~现在各种应用都要和Internet挂钩了,好像基本上要联网的应用都要用到服务器了额····有木有搞过类似开发的?给点建议啊!再次拜谢了!Android怎么开发一个点对点的聊天
------解决思路----------------------
用openfire吧
------解决思路----------------------
引用:
求大神啊!!!!!我最近也在做这个。。要给老师下学期交作业的。。。就是如何实现服务器主动向客户端推送消息。但是大家都说只有在请求的情况下,服务端才会response,我就想了个办法,在客户端设置个定时器,,每隔多少秒就向服务端发送一次消息。。。这样就能及时接受服务端发的消息了。。。也就是别人发过来的消息,,,可是难道就没有别的方法了吗。。。求大神啊


你的开发工具,除了http以外,还支持直接的tcp双向通讯,或者websocket吗?

后边两个,都是双向通讯的。只要是真正双向的,用什么开发工具都可以。差别只是效率问题。

不要只会 ajax 之类的。