ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:416.02KB ,
资源ID:23348052      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23348052.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(聊天室课程设计.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

聊天室课程设计.docx

1、聊天室课程设计 计算机网络课程设计 题目:聊天程序的设计和实现学院:计算机年级:2009级 班级:网络工程1班指导老师:宋伟小组成员:20095544 张驹强 20095545 张源 20095547 朱俊逸 时间:2011年1月10日课程设计指导教师评定成绩表(学生姓名: 张驹强 学号: 20095544)项目分值优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(xx90)良好(90x80)中等(80x70)及格(70x60)不及格(xx90)良好(90x80)中等(80x70)及格(70x60)不及格(x60)评分参考标准参考标准参考标准参考标准参考标准学习

2、态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度技术水平与实际能力25设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较

3、合理、可信设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信设计基本合理,理论分析与计算无大错,实验数据无大错设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧论文(计算书、图纸)撰写质量50结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书

4、写工整或用计算机打印成文;图纸工整、清晰结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰指导教师评定成绩:指导教师签名: 年 月 日重庆大学本科学生课程设计任务书课程设计题目计算机网络课程设计学院计算机学院专业网络工程年级2009已知参数和设计要求:通过计算机网络的课程设计,使学生了解、掌握TCP、UDP协议的原理;了解、掌握利用Winsock API编程的方法;了解、掌握应用协议设计的思想;利用Wins

5、ock API编制一个能部署在Internet上的点对点数据交换(P2P)、HTTP/FTP服务器系统、共享白板。要求每组学生(3人/组)从上述3个系统中任选一个,独立完成系统的功能设计和实现,使所实现的系统可以能够包含主要的内容要求,并要求学生必须在报告中明确具体分工情况。学生应完成的工作:分组 3人/组。 内容:协议编程。语言:JAVA/C+。3个题目任意选一个1) 点对点数据交换(P2P):实现基于服务器转发的任意多点间的数据共享与交换。2) HTTP/FTP服务器系统:HTTP/FTP客户端系统和HTTP/FTP服务端系统。3) 共享白板:实现基于服务器转发的多点间的文字,简单图案等信

6、息的远程实时共享。目前资料收集情况(含指定参考资料):1) 计算机网络第4版 谢希仁 电子工业出版社 2003年.6月2) 用TCP/IP进行网络互联(第一卷)D.E.Comer 电子工业出版社 2004年.11月第四版3) TCP/IP网络原理与技术 周明天、汪文勇 :清华大学出版社: 19934) JAVA网络高级编程 殷兆麟 清华大学出版社 2005.55) Visual C+网络高级编程,陈坚,人民邮电出版社,2001年08月课程设计的工作计划:1需求分析(说明系统目的,要求,操作流程,开发工具与开发平台)2总体设计(描述系统功能,系统架构,模块化分)3详细设计(建立系统的数据结构,协

7、议结构,数据流程图)4系统实现编码(用所选开发工具完成应用系统)任务下达日期 2012 年 1 月 5 日完成日期 2012 年 1 月 11 日指导教师 (签名)学 生 (签名)说明:1、学院、专业、年级均填全称,如:光电工程学院、测控技术、2003。2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。目 录摘 要 2一 需求分析 31.1 开发背景 31.2 功能要求 31.3 主要涉及的编程知识 31.4 编程语言及环境 3二 总体设计 42.1 系统实现的基本原理 42.2 系统功能 52.2.1服务器端的主要功能 52.2.2客户端的主要功能 52.3 系统运

8、行数据流程图 62.4 功能模块 72.4.1 服务器功能模块流程图 72.4.2 客户端功能模块流程图 8三 详细设计 93.1系统体系协议设计 93.2聊天室服务器端设计 103.2.1 ChatServer类 103.2.2 ClientProc类 113.3聊天室客户端设计 133.3.1 ChatFrame类 133.3.2 Connect类 163.3.3 Plist类 163.3.4 PopupListener类 163.3.5 Acceptfilethread&Sendfilethread类 16四 系统实现与调试分析 184.1聊天室服务器运行效果 184.2聊天室客户端用例

9、运行效果 194.3结果分析与问题解决 21五 总 结 22参考文献 23摘 要随着“E时代”的到来 ,网络观念深入人心。网络聊天室是在一个网站中,供许多人通过文字与符号进行实时(您输入的内容马上就能被别人看见)交谈、聊天的场所,它是一个向整个因特网开放的地方。为了加深理解和应用网络编程,实现网络聊天的功能,本次课程设计采用Windows Socket编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,实行将所有信息发往服务器端,再由服务器进行分别处理的思路,服务器端是所有信息的中心。本聊天室程序设计基于C/S模式,聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户

10、端发来的消息,客户端需登陆到服务器才可以实现正常的聊天功能。而聊天系统是一个开放的基于Java的应用开发设计,其主要特点是动态的,实时的来完成信息的传递,并拥有大量的客户请求的高效互动,更有效地处理。本文围绕Java编程语言在网络编程方面的具体应用,论述了使用面向对象方法,对程序进行如下探讨: 1需求分析 2总体设计 3详细设计最后使用Java编程实现的全过程。在编程我们使用的java语言,是目前比较流行的编程语言。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。本次课程设计的详细分工如下:20095544张驹强,完成本次实验服务器设计与聊天室信息传输控制协议的

11、设计等过程,并参与文档与测试工作,占总工作量的33.3%;20095545张源,完成本次系统功能流程设计与文件收发功能的设计等过程,并参与文档与测试工作,占总工作量的33.3%;20095547朱俊逸,完成本次实验聊天室数据结构设计等过程,并参与文档与测试工作,占总工作量的33.3%。关键词: 聊天室,JAVA,Windows Socket一 需求分析1.1 开发背景在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、网络聊天一类的聊天系统的发展日新月异。因此,我门设计了这个网络聊天工具的,而且通过制作该程序还能更好的学习网络软件编程知识

12、。本系统所要实现的主要功能是为广大用户提供一个借助网络进行人际交往的平台。因为服务器端采用多线程,所以性能有很大提升。因为服务端和客户端之间采用TCP协议进行网络通信,建立的是可靠的、端到端的网络连接,所以可靠性和安全性都很好。1.2 功能要求(1)服务器功能,用于监听与发送广播信息;(2)客户登录功能;(3)客户可以一对一和多对多聊天功能;(4)客户端程序可以实时显示其它在线的用户;(5)客户之间可以点对点传输文件。1.3 主要涉及的编程知识基于TCP的Socket通信编程、GUI程序设计、事件处理、多线程技术、输入输出处理、异常处理等。1.4 编程语言及环境在编程中我们使用的是目前比较流行

13、的编程语言-java语言。 开发环境选择了IBM公司研发的Eclipse SDK 3.7.0版本。二 总体设计为实现网络聊天的功能,本次课程设计采用Winsock API编程,服务器与客户端采用了TCP/IP连接方式,同时,聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听与转发客户端发来的消息,客户端需登陆到服务器才可以实现正常的聊天功能。2.1 系统实现的基本原理本系统在Microsoft Windows下通过TCP协议建立网络应用程序,需要使用Socket套接口编程技术。所谓socket通常也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求。以J2SDK-1.3

14、为例,Socket和ServerSocket类库位于java .net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:是服务器端套接字并不定位具体的客户端套

15、接字,而是处于等待连接的状态,实时监控网络状态。客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。 开发原理: 服务器,使用ServerSocket监听指定的端口,端口可以随意指定(

16、由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最

17、先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。 2.2 系统功能2.2.1服务器端的主要功能1. 启动后进行监听,等待客户端连接;2. 显示系统各种工作的信息,如用户上线和用户信息交流等信息;3. 显示在线用户信息;4. 向已经连接到服务端的用户发送广播消息和系统信息;5. 退出时,断开所有的用户连

18、接。2.2.2客户端的主要功能1. 登录功能,连接到已经开启的服务器并可以随时登录和注销;2. 用户可以配置要连接服务器端的IP地址和端口号;3. 用户可以设置自己的用户名与性别;4. 用户可以向所有人或者个人发送群消息或私聊消息;5. 用户可以点对点发送和接受文件。2.3 系统运行数据流程图图2-12.4 功能模块2.4.1 服务器功能模块流程图图2-22.4.2 客户端功能模块流程图图2-3三 详细设计功能传输方向控制信息用户登录用户 服务器name&sex反馈重名信息服务器 用户samename反馈不重名信息服务器 用户nosamename用户注销用户 服务器quit用户登录提示服务器

19、ALLnew&name&sex刷新下拉菜单列表服务器 ALLresetselect&name&name2刷新在线用户列表服务器 ALLresetplist&name.sex&.3.1系统体系协议设计取消发送文件源 服务器 cancelsendfile+&+目标name服务器 目标 cancelsendfile+&+源name发送文件源 服务器 sendfile&目标name&路径+源IP+&+源端口+大小服务器 目标sendfile&源name+&路径&源IP&端口+&大小接受文件目标 服务器acceptfile&源目标服务器 源acceptfile&目标拒绝接受文件目标 服务器refusef

20、ile+&+源name服务器 源refusefile+&+目标name群聊源 服务器 内容服务器 ALL 源name+:+内容公开私聊源 服务器 ”whitwho”+&+privateFalse+&+目标name+&+内容服务器 ALL“whitwho”+&+源name+&+目标name+&+内容私聊源 服务器“whitwho”+&+privateTrue+&+目标name+&+内容服务器 目标“privateTalk”+&+源name+&+目标name+&+内容3.2聊天室服务器端设计服务器包server主要包含两个类,分为ChatServer 和ClientProc3.2.1 ChatSe

21、rver类该类包含了服务器的主要功能的实现:建立服务器连接,实现服务端用户登录、退出与监听,实现服务器端的消息收发,在线用户列表实现等主要功能。它的主要结构如下所示: 图3-1 3.2.2 ClientProc类该类的功能是为某个用户服务的建立一个用户线程。主要的实现代码如下:private void updateList(String name, String sex) System.out.println(in two updatelist); ss.cl.remove(name); ss.resetcl(); Ss.resetplist(); public void run() whil

22、e (name = null) try String inmsg; inmsg = in.readLine(); System.out.println(inmsg); String userInfo; userInfo = inmsg.split(&); name = userInfo0; sex = userInfo1; ss.addConnection(s, this); if (ss.cl.contains(userInfo0) / 判断是否重名 System.out.println(有重名错误); ss.sendERRO(name, samename); ss.deleteConnec

23、tion(s, this, 1); s.close(); return; else ss.sendOne(name, nosamename); System.out.println(没有重名错误!); System.out.println(已将此用户记录); ss.sendAll(new& + inmsg); / 发送信息更新用户列表 new & name & sex System.out.println(已向所有用户发送 + name); ss.cl.add(name); System.out.println(用户列表: + ss.cl); ss.resetcl(); ss.resetplist(); Date t = new Date(); ss.jTextArea1.append(t.toString() + : + s.getInetAddress() + + s.getPort() + + name + 登入 + n); ss.flashlist(); System.out.println(flashlist has run); catch (IOE

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1