网络聊天室课程设计报告(内附java代码)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计网络聊天室院(系)别信电学院班级计算102学号姓名指导教师时间2013-4-18—2013-5-10课程设计任务书题目网络聊天室课程设计系(部)信电学院专业计算机科学与技术班级计算102学生姓名学号4月18日至5月10日共4周指导教师(签字)系主任(签字)年月日一、设计内容及要求二、设计原始资料1)电子工业出版社《JSP实用教程》,郑阿奇编著2)电子工业出版社《JAVA程序设计实用教程》,叶核亚编著三、设计完成后提交的文件和图表1.计算说明书部分JSP界面设计2.图纸部分:程序流程图四、进程安排五、主要参考资料1)电子工业出版社《JSP实用教程》,郑阿奇编著2)电子工业出版社《JAVA程序设计实用教程》,叶核亚编著考资料成绩评定表作品成绩报告成绩口试(答辩)成绩总评成绩目录课程设计概述...............................................................................................................................21.1问题描述.............................................................................................................................21.2功能需求分析.....................................................................................................................21.3环境需求分析.....................................................................................................................2学生信息管理系统软件总体设计...............................................................................................32.1整体思路.............................................................................................................................32.2总体设计流程图.................................................................................................................4学生信息管理软件详细设计.......................................................................................................53.1.界面设计.............................................................................................................................53.2通信功能实现方法.............................................................................................................7参考文献........................................................................................................错误!未定义书签。课程设计概述1.1问题描述`随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。因此出现了QQ等聊天工具,然而QQ等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于即时通讯、文件共享的专用工具。目前,用于实现单一的即时通讯、文件共享的软件实在太少,而且,它们中大部分都是绝对的C/S模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。为此,我决定开发一个专用于实现两台计算机之间即时通讯、文件共享的软件,以方便两台计算机之间信息的交流。避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接。因此,这个软件是极具适应性和实用性的即时通讯软件。1.2功能需求分析实现网络聊天的功能,采用WindowsSocket(或JavaSocket)编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,可将所有信息发往服务器端,再由服务器进行处理,服务器端是所有信息的中心。服务器端要保存用户信息,可利用数据库来实现这一功能,需要建立用户信息数据库。在客户端可采用文件系统保存聊天纪录和用户号码。可通过闪动托盘图标和播放不同的音乐提示信息到来及好友上线等信息。可通过建立消息链表来保存用户接收的各种消息。1.3环境需求分析运行环境:Windows9x、2000、XP、Windows7必要环境:JDK1.6以上、eclipse开发环境硬件环境:CPU400MHz以上,内存512MB以上学生信息管理系统软件总体设计2.1整体思路该C/S模式的聊天系统,就是服务器来提供服务端连接响应,客户端主动的发起连接请求。当多个用户同时连接到服务器时,经由服务器的接收与转发便可以实现客户之间的通信。对于整体系统的流程,也是分为两部分,即客户端的发起请求,服务器响应请求。首先是客户端的登陆,客户端在登陆时,必须设置所想要连接的服务器,然后客户端就会根据设置的服务器IP地址,向服务器发起建立连接请求。而服务器端是始终在监听网络状态的,主要检测到有一个连接请求,那么服务器就会给当前的发起端分配一个服务线程,用于处理它的各种请求。对于客户端的各种请求,实际上都是通过在客户发往服务器的各种字符流区分的,具体的方法就是在消息的头部以及尾部添加特殊字符串,从而实现服务器对消息请求的识别。比如对于登陆信息,消息的头部就是“PEOPLO”,而对于私聊中的消息,头部就是“SEC”,其他的同理都添加了头部。当然,对于客户端来说,这些都是透明的,用户的操作并没有受到任何影响。在服务器端,消息被检测分析后,变回根据具体的目的进行处理,比如是私聊消息,服务器便会根据其尾部的目的信息,向目标端转发该条消息。这里额外要说的是,该系统特别的对用户发来的消息进行了加密处理,即用户的各种具体信息,不仅能够防止向第三方的泄漏,而且即使服务器端出现异常,信息也不会泄漏。对于私聊的方式,该系统所采用的方法类似于QQ的通信方式,由发起方主动连接,当目的方接收到连接请求后,会主动建立一个私聊窗口,从而实现私聊。2.2总体设计流程图ServerClient建立服务器监听socket等待并接收连接请求创建socket向服务器发请求接收请求后创建socket连接InputStreamOutputStreamInputStreamOutputStream关闭socket关闭socket建立连接开始通信结束通信学生信息管理软件详细设计3.1.界面设计由于这里界面设计源代码比较简单,这里不再列出。3.1.1服务器界面设计服务器界面3.1.2客户端界面设计登陆界面注册界面聊天室界面3.2通信功能实现方法列举部分实现通信功能的主要代码AppServer.java文件publicclassAppServerextendsThread{privateServerSocketserverSocket;privateServerFramesFrame;privatestaticVectoruserOnline=newVector(1,1);privatestaticVectorv=newVector(1,1);/***创建服务器启动服务监听1001端口**/publicAppServer(){sFrame=newServerFrame();try{serverSocket=newServerSocket(1001);//获取服务器的主机名和IP地址InetAddressaddress=InetAddress.getLocalHost();sFrame.txtServerName.setText(address.getHostName());sFrame.txtIP.setText(address.getHostAddress());sFrame.txtPort.setText(1001);}catch(IOExceptione){fail(e,不能启动服务!);}sFrame.txtStatus.setText(已启动...);this.start();//启动线程}/***退出服务器**@parame*异常*@paramstr*退出信息*/publicstaticvoidfail(Exceptione,Stringstr){System.out.println(str+。+e);}/***监听客户的请求,当有用户请求时创建Connection线程*/publicvoidrun(){try{while(true){//监听并接受客户的请求Socketclient=serverSocket.accept();newConnection(sFrame,client,userOnline,v);//支持多线程//System.out.println(userLength:+userLength);}}catch(IOExceptione){System.out.println(不能监听);}}/***启动服务器*/publicstaticvoidmain(Stringargs[]){newAppServer();}}ServerFrame.java文件publicclassServerFrameextendsJFrameimplementsActionListener{publicJListlist;/****/privatestaticfinallongserialVersionUID=-8936397327038098620L;//服务器信息面板JPanelpnlServer,pnlServerInfo;JLabellblStatus,lblNumber,lblMax,lblServerName,lblProtocol,lblIP,lblPort,lblLog;publicJTextFieldtxtStatus,txtNumber,txtMax,txtServerName,txtProtocol,txtIP,txtPort;JButtonbtnStop,btnSaveLog;publicTextAreataLog;JTabbedPanetpServer;publicTextAreataMessage;//用户信息面板JPanelpnlUser;publicJLabellblMessage,lblUser,lblNotice,lblUserCount;JListlstUser;JScrollPanespUser;JTextFieldtxtNotice;JButtonbtnSend,btnKick;publicStringti=;publicString

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功