下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA课程设计实验报告聊天室报告DOCUment Serial number UU89WT-UU98YT-UU8CB-UUUT-UUT108中南大学面向对象课程设计题目“聊天室”课程设计(java语言)学生姓名学生学号专业班级指导教师完成时间第一章聊天室的描述31 . 1聊天室的设计要求31 . 2聊天室的基本功能31 . 3设计所用参考资料6第二章聊天室的设计62. 1聊天室的粗略设计分析62. 2聊天室的具体设计分析7第三章聊天室的实现103. 1聊天室所使用的类及功能的实现第四章聊天室的运行30第五章课程设计总结-315. 1开发中所遇到的问题315. 2问题分析与解决方法325. 3
2、经验与教训32第一章聊天室的描述1 . 1聊天室的设要求当今社会,网络技术越来越发展,可以说,二十一世纪就是网络的世纪。网络迅猛发展,势不可挡。为了实现资源共享,各式各样的网站 发展迅速,各种各样的聊天工具不断更新。某公司希望通过一个聊天工 具加强员工和客户之间的沟通和交流。所以制作一个聊天室势在必行。为了实现一个更好的网络交互平台,各用户之间能够实时方便的传 递信息,按照用户对系统的要求不同,可以在聊夭室里实现公共聊天, 也可以邀儿个私交好友私聊,同时提供了两个用户之间能够传送文件。 本系统是基于方便用户聊天,传递信息,共享资源,所以系统的功能主 要是从以上儿个模块着手。本项目主要是利用JA
3、VA语言制作一个聊天室,采用的是客户/服务 器。二层的C/S结构是指以单一的服务器和局域网为核心,能通过客户 端与用户进行直接对话。主要有二大功能:一是它用于检查用户从键盘 等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般 要使用图形用户接口 (GUI),操作简单、易学易用。在变更用户接口时, 只需改写显示控制和数据检查程丿子,而不影响其他。检查的内容也只限 于数据的形式和值的范围,不包括有关业务本身的处理逻辑。典型的C/S 结构有以下特点:1、服务器负责数据管理及程序处理。2、客户机负责界面描述和界面显示。3、客户机向服务器提出处理要求。4、服务器响应将处理结果返回客户机。5
4、、使网络数据流量最少。1. 2聊天室的基本功能1. 用户注册2. 用户登录3. 在线用户列表4. 用户公聊5. 用户私聊6. 好友信息维护7. 私聊信息的维护8. 登录日志的维护9. 用户注销扩展功能(如果完整实现一个扩展功能,适当加分):1. 可以切换不同的界面风格2. 用户可以更改个人资料,寻找密码3. 表情聊天4. 文件传递5. 公聊信息的维护用户注册第一次用户需要提供个人注册信息,注册的用户名不能重复,密码 长度不能少于6位,个人信息必须提供完整,并且存储在数据库中。用户登录用户输入用户名和密码,提交给将服务器端的确认,根据从服务器中 传过来的确认信息,判断用户登录的情况。并且把此次登
5、录的时间及登 录的IP记录在服务器。如果用户名和密码正确的话,则登录聊天室主界面;如果已经在线,则 输出已经在线;否则输出用户名和密码错误,需要重新登录或考注册。在线用户列表用户登录之后,需要知道系统中,有哪些用户在线,这样可以方便 用户选择与个别用户私聊和传送文件,也可以进行公聊。用户公聊用户输入的用户名和密码都正确后,则进入聊天室。聊天主界面主 要由四大版块组成:公聊的聊天信息、在线用户列表、好友列表,系统 消息和聊天的一些操作。聊天信息版块设计思想:一种就是将客户的聊天信息写入数据库,一种 是将其写入向量中。在本次项目中,要求学员把客户的聊天信息写入数 据库中。用户私聊如果两个人聊的话题
6、比较隐秘,不想被其他人看到,就要使用私 聊。在这里,如果说话对象是所有人的话,不能选择私聊;从当前好友 列表中选择了一个用户之后,则私聊对话框应该弹出来。文件传递两个用户在聊天过程中,可能需要相互间传送文件。象用户聊天信 息和在线用户这样一些信息都是保存在服务器端,然后每个客户读取服 务器端向量中的内容,此时服务器与客户端的联系是一对多的,而传送 文件是一对一的。所以直接传送,不需要经过服务器端保存。好友信息维护在聊天过程中,用户可以选择聊天室的用户加为自己的好友。对于 加为好友的用户,可以选择与其进行私聊。私聊的信息用文件保存在客 户端。该模块应该包括:添加好友删除好友私聊信息的维护如果两个
7、人聊的话题比较隐秘,不想被其他人看到,就要使用私 聊。而且只有好友之间才能进行私聊。要与某用户进行私聊,必须把对 方加为好友。与好友之间的聊天信息,应该以文件的方式存储在客户 端,不显示在公聊的版面上。登录口志的维护用户每次登录之后,都记录下用户的登录信息,如登录的时间口 期,登陆的IP等。方便用户发现是否号码被盗用。用户注销用户可以注销其身份,对于注销后的用户必须在数据库中删除其相 应的信息。设计所用参考资料JaVa编程思想(第四版)(机械工业出版社)JaVa程序设计与问题解决(人民邮电出版社)JaVa语言最新使用案例教程(清华大学出版社)Java2应用开发指南(第二版)(电子工业出版社)J
8、DK-API 一中文版网上查阅资料第二章聊天室的设计21聊天室的粗略设计分析聊天系统平台应有两个部分组成:服务端和客户端。服务端主要完 成用户信息的存储、客户端命令的接受与响应以及发送系统消息、信息 转发、踢人等服务端应有的功能。客户端主要完成聊天信息的发送与接 受、登录、注销等功能。此cs系统使用的是TCP/IP协议,应用了如下通讯模式:服务器端22聊天室的具体设计分析根据课程设计的要求及项目的需求分析,聊天程序应实现以下儿项 功能:登录、注册、公聊、私聊、系统消息、踢人、文件传送、注销 等。当客户程序需要与服务器程序通讯的时候,客户程序在客户机创建个SOCket对象。创建了一个SOCket
9、对象后,那么它可以通过调用 SOCket的getInputStream()方法从服务程序获得输入流读传送来的信 息,也可以通过调用SOCket的getOutputStream ()方法获得输出流来发 送消息。由于CIient使用了流套接字,所以服务程用也要使用流套接字。这 就要创建一个SerVerSOCket对象,接下来服务程序进入无限循环之中, 无限循环从调用SerVerSOCket的accept ()方法开始,在调用开始后 accept ()方法将导致调用线程阻塞直到连接建立。在建立连接后accept O 返回一个最近创建的SOCket对象,该SOCket对象绑定了客户程序的IP 地址或端
10、口号。由于存在单个服务程序与多个客户程序通讯的可能,服 务程序循环检测是否有客户连接到服务器上,如果有,则创建一个线程 来服务这个客户,以此完成对客户端的监听。具体流程如下图所示:未注册用户:主界面:/读取服务器/显示注册界面显示主界面写入服务器数据公聊已注册用户:/读取服务器/显示登录界面显示主界面结束第三章聊天室的实现3 . 1聊天室所使用的类及功能的实现客户端:序列化后用来传递用户信息的类:ClaSS USer impIements SeriaIiZabIeString Name:.quals 登陆)if (). equals ()(null,z用户名不能为空! );else USer
11、user=new USer():IJSer USerIOgin=new USer ();try二(); 二();Enter"StreanITOSerVer-newObjeCtOUtPUtStreanI ();StreanIFrOmSerVer-new ObjeCtlnPUtStreain ();(USer)USer);0;USerIOgin- (USer)();if"Enter")new MainFrame(toServer,;dispose ();else (nullz用户名或密码错误! );(");(");CatCh(EXCePtiOn e
12、e) (null,连接错误! ");try0;O;CatCh(EXCePtiOn ee) eys():WhiIeo) ObjeCt key-();if (key) instanceof FOnt ) (key, font);new LOgino ;QUaISr 注册)for(int t-0;t=0;)if (). equals (,z)(null,ZZ用户名不能为空! );t二 1;if"Repeat")else if (). equals () =false)(null,"密码不一致! );t=l;else USer user=new USer ();
13、=O;=0;二();=0;=(String) (). getLabel ();丫 =LOgIn ;try(USer)USer);fromServerMeSSage-(USer)(); CatCh(EXCePtiOn ee) (null,数据发送错误! );if"Login")dispose ();new MainFrame(TOServer,;(null,'用户名已存在! );t=l;if O. equals C 取消)dispose ();new LOgin ();tryTOSerVer=toServer;StreanlFrOmSerVer - new Objec
14、tInputStreamO); fromServerMeSSage-(USer)();0;VeCtorUserListl- (VeCtOr);(VeCtOrUSerLiStl);CatCh (EXCePtiOn ee)(null, "3");Thread thread - new Thread(this);O;quals 公聊)SendPUbIiCMeSSage();if ()二二 but to n2)SendPraViteMeSSage();if O. equals r 注销)IeSSen ();dispose ();try0;0;0;CatCh(EXCePtiOn ee
15、) ;new LOgin ();dd(jPanell);(选项);("系统消息);(null);(new ACtiOnListener() PUbIiC VOid actionPerformed(ACtiOnEVent evt) ms gMenu11 emAc t i OnPerfOrme d(evt););CmsgMenuItem);("踢人);(null);(new ACtiOnLiStener() PUbIiC VOid actionPerformed(ACtiOnEVent evt) kickMenu11emActiOnPerfOrmeCl (evt););(kic
16、kMenUltem);(COnimandMenU);SetJMenUBar(menuBar);StartServer ();PaCko ;PriVate VOid msgMenuItemActionPerformed(ActionEvent evt) how ();CIaSS APPSerVer extends ThreaCI+e);服务端己启动);O;PUbIiC VOid run OtryWhiIe(true)SOCket USerSOCket -();COnneCtion COn - newCOnneCtiOn(USerSOCket);CatCh(IOEXCePtiOn e),Not I
17、iStener,z+z,. "+e);建立连接类:CIaSS COnneCtiOn extends ThreadUSer fromUserMessage-new USer ():USer toUserMessage-new USer ();SOCket netUSer;ObjeCtInPUtStreanl StreanIFrOmUSer;ObjeCtOUtPUtSt:TeanI StreanITOUSer:boolean existName, exiStPassword;String OnIineNumber=zzImmOVabi 1 ity,;PUbIiC COnneCtiOn(S
18、OCket USerSOCket)姓名注册I 登陆I誉方因鬥聊天室定欲迎光临kingloHd的聊天室!私聊注销选项系纸消息 踢人口叵冈:192.168.1.125 O 个客户道但不会。这类问题往往是我知道应该怎么去设计,但却就是动不了手,要不 就错误百出。B.完全不会。这类问题摆在面前,我只能束手无策,苦恼而又无奈。5. 2问题分析与解决方法对于第一类问题,其实本质上不存在什么大的问题,都是因为自己平 时学习功底不够,还有编程时不够谨慎,才造成的。人非完人,学过 了,有点不懂或迷惑的地方也是很正常的,再说竟然知道怎么做,有希 望,那就有信心去解决。我在精神上坚定了,就能耐下性子征服它。通 过查
19、阅书本,仔佃分析、思考,请教同学、老师,这类问题还是得到了 很好的解决。对于第二类问题。造成的原因可分两种:一是明显的超过了我的能力 范围;二是因为我对问题的认识、分析不够深入造成的假复杂现象。此 类问题非要对症下药,效果方最好。如果没有找出原因而盲目努力,是 不会有太大效果的。在这类问题出现后,人常常会感到烦躁、泄气,这 时便不可能出现解决问题的可能。 怎么办好我想,最重要的是要能稳住心态,相信自己终究会取得胜利 的,同时也必须清楚地认识到自己的能力是有限的。此时,你需要学习 知识,更要多借鉴他人在相同问题上的处理方法,弄懂了,一切就都好 办了,离解决问题也就不会太远了。5. 3经验与教训由于能力及时间的关系,这个J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论