多人聊天系统的设计与实现课程设计说明书.docx

上传人:夺命阿水 文档编号:845899 上传时间:2023-12-24 格式:DOCX 页数:11 大小:24.20KB
返回 下载 相关 举报
多人聊天系统的设计与实现课程设计说明书.docx_第1页
第1页 / 共11页
多人聊天系统的设计与实现课程设计说明书.docx_第2页
第2页 / 共11页
多人聊天系统的设计与实现课程设计说明书.docx_第3页
第3页 / 共11页
多人聊天系统的设计与实现课程设计说明书.docx_第4页
第4页 / 共11页
多人聊天系统的设计与实现课程设计说明书.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《多人聊天系统的设计与实现课程设计说明书.docx》由会员分享,可在线阅读,更多相关《多人聊天系统的设计与实现课程设计说明书.docx(11页珍藏版)》请在课桌文档上搜索。

1、摘要本课程设计主要是设计并实现一个简单的多人聊天程序,该聊天程序能够支持多人聊天,聊天的内容可以仅仅支持文本信息、,聊天程序包括效劳器程序和客户端程序。在课程设计中系统的开发平台为Eclipse程序运行平台为WindowsXPo关键词:聊天程序;效劳器;客户端;Eclipse目录1课题描述错误!未定义书签。2设计过程2效劳器模块32.2 客户端模块32.3 信息处理模块42.4 源代码43测试11总结13参考文献141课题描述随着社会开展,Interneni的迅速普及,人们对实时通信的要求越来越迫切,需求日益增加,网络聊天已经成为了一大时尚,不少人都有这样的经历。客户客户端/效劳器模式是一种能

2、够在基于网络环境的分布处理过程中,使用基于连接的网络通信模型。该通信模型首先在客户机和效劳器之间定义一套通信协议,并创立一个SOCket类,利用这个类来建立一条可靠的链接:然后,客户端/效劳器再在这条连接上可靠地传输数据。客户端发出请求,效劳器发出请求,效劳器监听来自客户机的请求,并为客户端提供相应效劳。客户/效劳模式可靠性高、采用模块化设计所以它的优势很明显。是现代通信不可或缺的一局部。本课题主要是通过对简单聊天程序的设计及QQ原理的分析,了解聊天程序的功能需求及工作原理;熟悉TCP/IP协议以及套节字编程原理;熟悉Eclipse编程环境及SocketZServerSocket编程方法。开发

3、工具:Eclipse2设计过程聊天室的总体设计过程比拟简单主要是构建设计框图。就是当客户端发出信息时,我们将数据写到SoCket,当对方有数据到达时,我们从SOCket读出来并显示给客户。程序关键在于如何监听到有信息到达的过程。应用程序流程图如下列图所示,开始是先创立主窗口,然后初始化窗口,程序下面才开始消息循环处理。如果没有消息循环的活,直接结束掉这个程序。如果有循环的话,要判断这个窗口消息的内容是哪种类型,然后再进行选择处理方式。流程图如图2-1所示图2-1效劳器模块图效劳器模块聊天室主要包括三个模块,效劳器模块、客户端模块、信息处理模块。该聊天室可以支持多人聊天,只支持文本信息。效劳器模

4、块所包含的函数模块如下列图所示图2-2效劳器模块图客户端模块客户端所包含的函数模块如下列图所示图2-3客户端模块图信息处理模块信息处理模块包括注册信息及登录信息的处理模块,其所包含的函数模块如下列图所示图2-4信息处理模块图源代码/ChatSerpackagelee;importjava.util.*;importjava.io,*;publicclassChatServiceprivatestaticChatServicecs;privatePropertiesuserList;privateLinkedListchatMsg;privateChatServiceOpublicstaticC

5、hatServiceinstance()if(cs=null)cs=newChatServiceO;returncs;publicbooleanvalidLogin(Stringuser,Stringpass)throwsIOExceptionif(loadUser().getProperty(user)=null)returnftlse;if(loadUser().getProperty(user).equals(pass)returntrue;returnfalse;publicbooleanaddUser(Stringname,Stringpass)throwsExceptionif(u

6、serList=null)userList=loadUser();if(userList.containsKey(name)thrownewEXCePtiOn(用户名已经存在,请重新选择用户名);userList.setProperty(name,pass);saveUserList();returntrue;publicStringgetMsg()if(chatMsg=null)chatMsg=newLinkedList();retum”;Stringresult=,m,;for(Stringimp:chatMsg)result+=tmn;returnresult;publicvoidadd

7、Msg(Stringuser,Stringmsg)if(chatMsg=null)chatMsg=newLinkedList();if(chatMsg.size()40)chatMsg.removeFirst();chatMsg.add(user+说:”+msg);/下面是系统的工具方法privatePropertiesIoadUserOthrowsIOExceptionif(userList=null)Filef=newFile(nuserFile.propertiesn);if(!f.exists()EcreateNewFileO;userList=newProperties();user

8、List.load(newFileInputStream(O);returnuserList;privatebooleansaveUserList()throwsIOExceptionif(userList=null)returnfalse;userList.store(newFileoUtPUtSlream(userFile.PrOPerlies”),userList”);returntrue;/packagelee;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletExcetion;

9、importjavax.servlet.Servlet;importjavax.servlet.ServletRequest;VletResponse;importjavax.servlet.ServletExcetion;importjavax.servlet.ServletContext;importjavax.servlet.RequestDispatcher;importjavax.servlet.Servlet;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;impoiljava.io.Pr

10、intWriter;importjava.io.IOException;publicclassChatServletextendsServlet*Constructoroftheobject.*/publicChatServletOsuer();*Destructionoftheservlet,*/publicvoiddestroy()super.destroy();/JustputsdestroystringinlogPutyourcodehere*ThedoGetmethodoftheservlet,*Thismethodiscalledwhenaformhasitstagvaluemet

11、hodequalstoget.*paramrequesttherequestsendbytheclienttotheserver*paramresponsetheresponsesendbytheservertotheclient*()throwsServletExceptionifanerroroccurred*()throwsIOExceptionifanerroroccurredpublicvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException*ThedoPost

12、methodoftheservlet,*Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.*paramrequesttherequestsendbytheclienttotheserver*(3)paramresponsetheresponsesendbytheservertotheclient*(2)throwsServletExceptionifanerroroccurred*(3)throwsIOExceptionifaneoroccurredpublicvoiddoPost(ServletRequestrequest

13、,ServletResponseresponse)throwsServletException,IOException*Initializationoftheservlet,*(3)throwsServletExceptionifanerroroccurspublicvoidinit()throwsServletExceptionPutyourcodehere)publicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsIOException,ServletExceptionFequest-SetCharacter

14、EncodingCrUTF-S1);Stringmsg=request.getParameter(cha(Msg);if(msg!=null&!msg.equals()Stringuser=(Slring)request.getSession(true).gelAltribute(user);ChatService.instance().addMsg(user,msg);设置中文流response.setContentType(text/html;chaset=GBK,);PrintWriterout=response.getWriter();out.println(ChatService.i

15、nstance().getMsg();3测试聊天室的程序模块如下列图所示图3-1聊天室程序模块图程序运行后,用户注册界面如下列图所示图3-2用户注册界面用户登录界面如下列图所示图3-3用户登录界面进入聊天室的聊天界面如下列图所示图3-4聊天室界面可以进行多人聊天,多人聊天如下列图所示图3-5多人聊天总结网络的课程设计,之前没有接触过网络编程的语言,所以感觉难度比拟大,也因为如此,在找资料及向老师同学的请教中学到了很多的东西。这次的课程设计是简单聊天程序,在平日的生活学习中,可以说QQ等即时通讯软件已占据重要的位置,也深受大家的喜爱,所以这个课程设计很有现实意义,做起来也比拟感兴趣。在具体做的过

16、程中,参考了网络班同学还有学长的一些程序,虽然这个聊天室的界面及功能比拟简单,但从代码的编写及结果的调试成功还是花了很多的心思。尤其是刚开始用Eclipse软件的时候,从完全陌生到慢慢的了解,这其中的过程对应用方面知识的提高有很大的帮助。课程设计工程的虽然要求是独立完成,但还是很多问题的解决离不开老师的指导及同学之间的探讨,这些在做工程的时候都是必不可少的。学校提供了设计的机房还有老师的悉心指导,这些跟课程设计的顺利完成都是密不可分的,在这里感谢大家带来的帮助。另外就是知识方面的问题,计算机网络和JaVaSOCket有很多方面的知识还是很不熟悉,具体用到的时候就感觉生疏,或者还是缺乏设计方面的实践。课程设计的时机不是很多,由于所学的知识包含了太多的方面,所以实践方面还是远远不够,希望在学校期间能够多一些类似的时机。虽然课程设计顺利的完成了,但由于水平有限,还是有很多的欠缺跟缺乏之处,希望老师给予指正。参考文献1谢希仁.计算机网络.北京:电子工业出版社M.20232丁振凡.JaVa语言实用教程.北京:北京邮电大学出版社M.20053Y.DanielLiang.JaVa语言程序设计.北京:机械工业出版社M.20234赛奎春.JSP工程应用与工程实践.北京:机械工业出版社M.20055IanF.Darwin.JaVa经典实例.北京;中国电力出版社M.1999

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号