文件名称:山寨QQ源代码
文件大小:63KB
文件格式:TXT
更新时间:2015-03-03 02:07:29
山寨QQ Java 聊天通讯
资源分设为1,因为我自己只有3分资源分了,所以就不设为0了 这个山寨QQ代码2000行,基于现在可以使用IP6,给出它的设计原理 功能:山寨QQ 主要行为: ①用户注册 ②添加好友 ③好友上线头像变为彩色 ④在线上的好友头像是彩色,不在线上的好友头像是灰色,动态变化 ⑤独立窗口聊天 ⑥服务器端有两个表,全部用户表和在线用户表,都是动态改变的 代码在下面,有2000多行,总共17个文件,干脆就看看这些思路得了。 山寨QQ分为用户端和服务器端,主要用到的Java知识点有:多线程、网络编程、IO流,如果能够加入数据库当然更好,可是我在家一直没网,没有数据库,所以就把用户信息全部储存在文件中了。 服务器端3000号端口作为一个特殊的端口,放在一个单独的线程中时刻监听着。服务器的交互信息通讯端口从3001号一直向后监听,最大可以到65535号端口。 用户每次来连接服务器时,首先连接3000号端口,获取服务器正在监听的端口号,然后再去连接这个端口。 用户和服务器之间的交互信息使用对象流来传递,信息类型分为 注册消息=0、 修改密码=1、 登录验证=2、 请求聊天=3、 获取在线好友=4、 添加好友=5、 某人上线了=6 如果是登录消息,则把这个新建的套接字(套接字即Socket,网络通讯全靠他来实现)储存在一个单独的线程中,使用这个线程的类储存用户的用户名、昵称、密码、IP。然后将这个县城储存在一组向量中,即C语言中的链表。IP地址可以通过套接字得到。当用户再次和服务器发生交互信息时,直接利用这个已存在的套接字即可。 如果用户双击某个用户希望聊天时,首先从服务器端获取该用户的IP,然后再单独去连接这个用户。 用户连接用户时,和连接服务器的原理大同小异。2000号端口作为一个特殊的端口被监听着。如果一台机器上同时登陆有多个用户,则监听的端口一直往下走,最小可以到1025,总共有975个端口可以利用,用户总该用不了这么多吧。然后接下来,该不用我说了吧,连接好友正在监听的端口就是了。 建立完成连接,就可以弹出聊天窗口开始聊天了。 好了,大体思路就是这样。当然还有一些其他的功能,比如注册用户、添加好友等,和上面思路也差不多。 对了,忘了说说如何获取在线好友了 用户登录成功后,将自己所有的好友列表从文件中读取,放在一个向量中发送给服务器,服务器查看哪些人在在线用户列表中,然后返回用户的在线好友,同时通知这些在线好友某人人上线了,还是利用已建立的套接字。 用户下线后,和服务器已建立的套接字发生IOException异常,程序代码块跳转,服务器就通知用户的在线好友有人下线了。