文档介绍:Forpersonaluseonlyinstudyandresearch;mercialuse袂1概述 1薂2需求描述 1莀3功能分析 2肈4主要功能实现 89芈芄清华辰安JAVA项目---网络版JQ螃1概述膁为巩固对JAVA的学习,帮助大家掌握知识点,特让同学们编写一个模拟QQ在线聊天的程序JQ,可实现网上多人聊天,主要用到Swing、线程、网络编程、集合类、文件IO处理、日期、泛型及JAVA基础知识,采用面向对象的方法设计,是对本课程的一个完整的复习和提高。蚈2需求描述肅娱乐聊天作为一个长期的话题,早已经深入人心。为了满足学习JAVA的爱好者对网络聊天程序开发的愿望,因此开发出类似QQ聊天系统的系统JQ。袄3功能分析艿这个聊天系统分为服务器端和客户端两个部分:服务器端主要负责监听客户端的连接请求,把客户端的注册请求、登录请求通过网络发送给服务器端进行处理,把客户端(请求方)的聊天请求、发送文件请求、发送振动请求等转发给目标客户端(接收方);而客户端就是负责发送请求并处理服务器端返回的响应信息。肇4主要功能实现螅本项目的客户端和服务器端的源代码列表如图:羅蚂从图中可以看出:项目的包主要分成客户端和服务器端两个部分。根据功能分析分为以下几大功能模块:薇服务器监听模块薅客户端用户登录模块螃用户注册模块螀聊天模块芀发送文件模块芆发送振动消息模块螄下面就从这6个主要功能模块来分别介绍。。效果如图:薁芁在服务器监听窗体中显示了:服务器当前所监听的端口、当前的在线用户列表、当前已注册的用户列表。如果要想看当前已注册的用户列表,可以单击【已注册用户列表】标签切换到这个选项卡,显示结果如图:聿螇图中为了方便用户的测试,把密码显示出来了,如果有必要的话,可以修改代码将密码设置为不可见。蚃如果想关闭并退出服务器,可以单击【关闭服务器】按钮或关闭窗体按钮,此时会弹出是否关闭的提示对话框,效果如图所示:荿蒈如果想要关闭服务器,可以单击【是】按钮,否则单击【否】按钮可以取消这步操作。蒇以上这些功能的实现,需要了解以下几个类:,当接收到一个客户端连接时就创建一个线程专门处理这个客户端的请求,最后启动服务器监听窗体。代码如下:蒂/**袀*ClassName:*Author:qiujy羈*CreateTime:2009-4-15薃*EMAIL:qjyong@膂*Copyright2009++*/蒄packageserver;;.*;.*;;;衿羅/**服务器入口程序*/lassServerMain{螂 publicstaticvoidmain(String[]args){莈 intport=(("port"));蚅//初始化服务器套节字薄 try{羀 =newServerSocket(port);螈}catch(IOExceptione){蒆 ();莂}节膇 newThread(newRunnable(){//启动新线程进行客户端连接监听膆 publicvoidrun(){莃 try{莁 while(true){袀//监听客户端的连接羆 Socketsocket=();蒅 ("客户来了:"蕿+().getHostAddress()莀+":"+());