您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 多人聊天系统的设计与实现课程设计说明书
课程设计说明书(论文)用纸摘要本课程设计主要是设计并实现一个简单的多人聊天程序,该聊天程序能够支持多人聊天,聊天的内容可以仅仅支持文本信息,聊天程序包括服务器程序和客户端程序。在课程设计中系统的开发平台为Eclipse程序运行平台为WindowsXP。关键词:聊天程序;服务器;客户端;Eclipse课程设计说明书(论文)用纸目录1课题描述...................................................................................错误!未定义书签。2设计过程...................................................................................................................22.1服务器模块......................................................................................................32.2客户端模块......................................................................................................32.3信息处理模块..................................................................................................42.4源代码..............................................................................................................43测试..........................................................................................................................11总结..............................................................................................................................13参考文献.....................................................................................................................14课程设计说明书(论文)用纸第1页共14页1课题描述随着社会发展,Internent的迅速普及,人们对实时通信的要求越来越迫切,需求日益增加,网络聊天已经成为了一大时尚,不少人都有这样的经历。客户客户端/服务器模式是一种能够在基于网络环境的分布处理过程中,使用基于连接的网络通信模型。该通信模型首先在客户机和服务器之间定义一套通信协议,并创建一个Socket类,利用这个类来建立一条可靠的链接;然后,客户端/服务器再在这条连接上可靠地传输数据。客户端发出请求,服务器发出请求,服务器监听来自客户机的请求,并为客户端提供相应服务。客户/服务模式可靠性高、采用模块化设计所以它的优势很明显。是现代通信不可或缺的一部分。本课题主要是通过对简单聊天程序的设计及QQ原理的分析,了解聊天程序的功能需求及工作原理;熟悉TCP/IP协议以及套节字编程原理;熟悉Eclipse编程环境及Socket/ServerSocket编程方法。开发工具:Eclipse课程设计说明书(论文)用纸第2页14页2设计过程聊天室的总体设计过程比较简单主要是构建设计框图。就是当客户端发出信息时,我们将数据写到socket,当对方有数据到达时,我们从socket读出来并显示给客户。程序关键在于如何监听到有信息到达的过程。应用程序流程图如下图所示,开始是先创建主窗口,然后初始化窗口,程序下面才开始消息循环处理。如果没有消息循环的活,直接结束掉这个程序。如果有循环的话,要判断这个窗口消息的内容是哪种类型,然后再进行选择处理方式。流程图如图2-1所示开始创建窗口初始化判断窗口消息判断命令BindListen分别处理各种Socket消息connect创建控件SOCKET连接CREAT继续消息循环YesCOMMAN侦听结束处理结束NO图2-1服务器模块图课程设计说明书(论文)用纸第3页14页2.1服务器模块聊天室主要包括三个模块,服务器模块、客户端模块、信息处理模块。该聊天室可以支持多人聊天,只支持文本信息。服务器模块所包含的函数模块如下图所示图2-2服务器模块图2.2客户端模块客户端所包含的函数模块如下图所示图2-3客户端模块图课程设计说明书(论文)用纸第4页14页2.3信息处理模块信息处理模块包括注册信息及登录信息的处理模块,其所包含的函数模块如下图所示图2-4信息处理模块图2.4源代码1.服务器程序清单//ChatService.javapackagelee;importjava.util.*;importjava.io.*;publicclassChatService{privatestaticChatServicecs;privatePropertiesuserList;privateLinkedListStringchatMsg;课程设计说明书(论文)用纸第5页14页privateChatService(){}publicstaticChatServiceinstance(){if(cs==null){cs=newChatService();}returncs;}publicbooleanvalidLogin(Stringuser,Stringpass)throwsIOException{if(loadUser().getProperty(user)==null){returnfalse;}if(loadUser().getProperty(user).equals(pass)){returntrue;}returnfalse;}publicbooleanaddUser(Stringname,Stringpass)throwsException{if(userList==null)课程设计说明书(论文)用纸第6页14页{userList=loadUser();}if(userList.containsKey(name)){thrownewException(用户名已经存在,请重新选择用户名);}userList.setProperty(name,pass);saveUserList();returntrue;}publicStringgetMsg(){if(chatMsg==null){chatMsg=newLinkedListString();return;}Stringresult=;for(Stringtmp:chatMsg){result+=tmp+\n;}returnresult;}publicvoidaddMsg(Stringuser,Stringmsg){if(chatMsg==null)课程设计说明书(论文)用纸第7页14页{chatMsg=newLinkedListString();}if(chatMsg.size()40){chatMsg.removeFirst();}chatMsg.add(user+说:+msg);}//下面是系统的工具方法privatePropertiesloadUser()throwsIOException{if(userList==null){Filef=newFile(userFile.properties);if(!f.exists())f.createNewFile();userList=newProperties();userList.load(newFileInputStream(f));}returnuserList;}privatebooleansaveUserList()throwsIOException{if(userList==null){returnfalse;}userList.store(newFileOutputStream(userFile.properties),userList);课程设计说明书(论文)用纸第8页14页returntrue;}}2.客户端程序清单//ChatServlet.javapackagelee;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.ServletException;importjavax.servlet.ServletContext;importjavax.servlet.RequestDispatcher;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.PrintWriter;importjava.io.IOException;publicclassChatServletextendsHttpServlet{/*Constructoroftheobject.*/publicChatServlet(){super();}/*Destructionoftheservlet.br*/publicvoiddestroy()课程设计说明书(论文)用纸第9页14页{super.destroy();//Justputsdestroystringinlog//Putyourcodehere}/**ThedoGetmethodoftheservlet.br*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.*@paramrequesttherequestsendbytheclienttotheserver*@paramresponsetheresponsesendbytheservertotheclient*@throwsServletExceptionifanerroroccurred*@throwsIOExceptionifanerroroccurred*/publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}/**ThedoPostmethodoftheservlet.br*Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.*@paramrequesttherequestsendbytheclienttotheserver*@paramresponsetheresponsesendbytheservertotheclient*
本文标题:多人聊天系统的设计与实现课程设计说明书
链接地址:https://www.777doc.com/doc-3878451 .html