基于java聊天室的设计与实现毕业设计报告内容摘要:
的实现机制。 Java 语言支持 Inter 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口,它提供了用于网络应用编程的类库,包括 URL、URLConnection、 Socket(实现客户端的套接 字)、 ServerSocket(实现服务器端的套接字)等。 Java 的强制型机制、异常处理、废料的自动收集等都是 Java 程序健壮性的重要保证。 Java 通常被用在网络环境中,为此, Java 提供了一个安全机制以防恶意代码的攻击。 Java 语言的优良特性使得 Java 应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。 Java 对对象技术的全面支持和 Java 平台内嵌的 API 能缩短应用系统的开发时间并降低成本。 Java 编译一次,处处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。 丰富的类库为 Java 提供了大量的类以满足网络化、多线程、面向对象系统的需要。 同时 Java 程序可以获取网络上节点的图像、声音、 HTML 文档及文本资源。 Java 架构设计 从技术角度来说, 软件架构随着技术的革新不断地更新其内容,软件架构建立于当前技术和一些基本原则的基础之上。 架构的一些基本原则 : 分层 化 原则:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了阶级一样,软件有了层次结构。 模块化原则:模块化是化解软件广度复杂的必然手段,模块化的目的就是让软件分工。 接口分离原则 : 随着软件 模块化的不断深入改进,面向接口编程而不是面向实现编 基于 java 聊天室的设计与实现 5 程可以让复杂度日趋增高的软件降低模块之间的耦合度,从而让各模块更轻松改进。 依赖倒置原则 : 随着软件结构的进一步发展 ,层与层之间、模块与模块之间的依赖逐渐加深,而层、模块的动态可插拔要求不端增大。 当前最典型的三层次架构就架构在以上几项原则的基础之上,用数据库作存储层、用面向对象来实现业务层、用 web 作为用户接口层。 这种三层次架构同样应用于此次系统的设计。 本课题开发环境的选择 在进行开发之前 ,首先决定的第一个问题就是 ,该使用什么开发环境来编写该系统 ?以目前常用的开发语言来讲有 C/C++、 .NET 技术, JAVA、 Visual Basic 几种。 还有 Eclipse,、Borland JBuilder 等,这些并不是程序语言,而是程序语言在建构程序时的“集成开发工具”,不过它们在开发设计的过程中也占有相当重要的角色,因为选用正确的集成开发工具,可以加速程序设计的进行、测试与排错,因而对整体进度具有决定性的影响。 基于以下几点,选择 JAVA 语言开发技术。 1) 就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。 用户可能使用的是 Windows Linux。 JAVA 语言具有平台无关性,可以不需要任何修改就可以运行在支持 JAVA 的任何计算机上。 2) JAVA 的 Swing 组件开发技术可以开发丰富的图形界面,并且 Swing API 类提供了丰富的外部接口和方法,可以方便实现系统功能。 3) 就项目开发而言,纯粹的面向对象,加上数量巨大的类所提供的方法(函数)库的支持,使得利用 Java 开发各种应用程序,可以说是易如反掌。 此外,在程序除错、修改、升级和增加新功能等方面,因其面向对象的特性,使得这些维护也变得非常容易。 4) Java 支持内在的多线程运行,提供分布式的并发机制,运行效率高。 5) 异常处理,为了使 Java 程式更稳定、更安全, Java 引入了异常处理机制。 能够在程序中产生异常情况的地方,执行相对应的处理,不至于因突发或意外的错误造成执行中断或是死机。 通过这种异常处理,不仅能够清晰地掌握整个程序执行的流程,也使得程序的设计更为严谨。 6) 高性能, Java 可以在运行时直接将目标代码翻译成机器指令。 Sun 用直接解释器一秒钟内可调用 300,000 个过程。 翻译目标代码的速度与 C/C++的性能没什么区别。 7) 网络功能, Java 可以说是借助因特网而重获新生的,自然具备编写网络功能的程序。 不论是一般因特网 /局域网的程序,如 Socket、 Email、基于 Web 服务器的 Servlet、JSP 程序,甚至连分布式网络程序,如 CORBA、 RMI 等的支持也是非常丰富的,使用起来也很方便。 8) 源回收处理 ,Garbage Collection 是由 JVM 对内存实行动态管理的。 程序需要多少内存、哪些程序的内存已经不使用了,需要释放归还给系统,这些烦琐 危险的操作全3 系统开发环境与工具的选择 6 部交由 JVM 去管理。 让我们能够更专心地编写程序,而不需要担心内存的问题。 内存的统一管理,对于跨平台也有相当大的帮助。 本课题开发工具的选择 Java 的开发工具很多 ,而且各有优缺点, Eclipse 是一个开放可扩展的集成开发环境(IDE)。 它不仅可以用于 Java 的开发,通过开发插件,它可以构建其他的开发工具。 Eclipse是开放源代码的项目,并可以免费下载。 支持最新的 Java 标准,并且缩短了开发周期。 一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是 Eclipse 一直是广大程序员最喜爱的 Java 开发工具的原因之一。 Eclipse 的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。 用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件, 并可以编译、运行和调试应用程序。 可以说在 Eclipse 集成开发环境中开发 Java 程序,快速而且高效。 其主要特点如下: 1) 开放的可扩展的 IDE 2) 成功的底层图形界面 API 3) 强大的插件加载功能 4) 可以通过导入一些 CVS 相关的插件来实现版本管理的便易性 本课题开发技术的选择 本课题选择了 java Socket 技术开发网络聊天室。 什么是 socket? socket 是一种用于表达两台机器之间连接“终端”的软件抽象。 对于一个给定的连接,在每台机器上都有一个 socket,你可以想象一个虚拟的 电缆 工作在两台机器之间 ,“电缆”插在两台机器的 socket 上。 当然,物理硬件和两台机器之间的“电缆”这些连接 装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。 简单的说,一台计算机上的 socket同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两台机器之间发送数据。 当你发送数据 TCP/IP 协议栈的每一层都给你的数据里添加适当的报头。 有个好消息是 java 语言隐藏了所有这些细节,这也是为什么他们有时被叫做“流 socket”。 思考一下 socket 像电话听筒一样在电话的任意一端--你和我通过一个专门的信道来进行通话 和接听。 会话将一直进行下去直到我们决定挂断电话(除非我们使 用蜂窝电话),除非我们挂断电话,否则我们各自的电话线路都会占线。 如果你需要在两台机器之间进行通讯而不使用高级机制像 ORBs(以及 CORBA, RMI, IIOP 等等), socket 比较适合你。 Socket 的底层机制则相当棘手。 基于 java 聊天室的设计与实现 7 4 需求分析 以往聊天室系统的缺陷 通过对以往聊天室的研究及分析,发现聊天室系统存在以下问题: 1)以往聊天室只能看到用户 ID 而不能看到用户的个人形象,包括个人头像和个人服装 SHOW。 2)不能轻易分辨出自己谈话和别人的 谈话。 3)用户聊天只有单纯的文字表达,不能通过丰富的表情和图片来增添聊天的乐趣。 4)聊天背景只有单纯的白色,没有任何可供选择的背景颜色和画面,使整个聊天环境显的呆板。 聊天室系统作为网络通讯工具的作用 聊天室是提供给网民一个交友与娱乐的场所,在聊天室里网民可选择 自己 的聊天对象,与其进行对话交流,是网民之间相互沟通、交流情感的最佳方式之一。 用户可以通过网络在线与距离遥远的其他一位或多位用户进行信息交流。 在聊天室里网民可选择自己的聊天对象,进行对话交流。 既可以一对一,又可以一对多,还可以形成小组进行多对多讨论 ,方便网民在线私聊与群聊。 是现行网络最流行、最被广泛应用的通讯工具。 现行聊天室系统 的功能需求 聊天室系统虽然满足了人们的在线通讯,但是随着聊天室被广泛应用,人们对于聊天的要求也越来越高,单纯的聊天已不能满足人们的需要,人们更需要多功能的聊天室系统,来丰富聊天环境。 聊天室系统功能具体需求包括: 1) 一个聊天室里所有的人都可以互相密谈。 2) 可以通过用鼠标点击页面上出现的或者人名列表的人名来选择人名。 3) 可以使用颜色来轻易分辨出别人的谈话和自己的谈话。 4) 可以察看进入房间以后的所有聊天纪录。 5) 可以通过 贴图在您聊天中加入卡通图片,使聊天内容丰富多采,充满活力。 6) 可以根据您的自己喜好来设置背景颜色和画面,使您更加舒适的聊天。 用户注册 需求描述:用户填写系统给出的注册项目,并提交给系统,成功注册后,系统生成用户所注册的登入 ID,并保存在数据库当中。 执行者:用户 前置条件:无 后置条件:无 正常过程: 4 需求分析 8 1) 向服务端发送注册请求 2) 服务端响应客户端,客户端弹出注册信息表单 3) 用户填写完表单后将注册数据传给服务端处理,并保存在数据库中 4) 返回客户端一个响应,显示用户注册的 ID,提示注册成功 异常过程(可选 ): 用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示 信息,并将光标定位到出错的地方。 用户注册的项在数据库中发生冲突,客户端提示注册不成功并提示用户 重新填写表单。 服务器未启动或出现异常 通过注册模块实现用户的在线注册,所填写的注册项目有:用户名、密码、密码确认、性别、年龄、 Email。 图 431 注册活动图 图 432 登录活动图 用户登入 需求描述:用户填写登入 ID 和密码,经服务器验证成功后进入聊天室主界面。 执行者:用户 前置条件:用户成功注册或已经拥有一个合法的 ID 号 后置条件:无 用户 注册界面 正确填写注册项 提交 确认信息 注册成功 用户 进入登入界面 输入用户名,密码 提交 确认信息 进入系统 基于 java 聊天室的设计与实现 9 正常过程: 1) 向服务端请求连接,并发送登录信息。 2) 服务端处理并查询数据库中的用户信息 3) 返回客户端一个响应,提示登录成功,弹出聊天室主界面。 4) 刷新其他在线用户的用户列表信息 异常过程(可选): 用户填写的 ID 或密码与数据库中的纪录不匹配,客户端 提示登录失败。 客户端设置的服务器地址或端口有误。 服务器未启动或出现异常。 私聊 需求描述:用户可选择聊天室的在线用户列表中其他用户聊天。 并且对方有消息提示,双方发送的信息对于聊天室的其他用户是不可见的。 执行者:用户 前置条件:用户登录成功,私聊的对方在线 后置条件:无 正常过程: 1) 客户端与服务端建立通讯。 2) 客户端将用户发送的信息打包传送给服务端。 3) 服务端进行数据分析,查找目的用户的 ID,并将用户的信息传给目的用户。 4) 目的用户 收到服务器的信息后,正确的显示并保存。 异常过程(可选): 客户端与服务端断开连接,客户端提示信息发送失败。 客户端发送的私聊内容包含不合法的字符特殊需 求(可选):不能与不在线的用户进行私聊。 用户 选择其他用 户 输入信息 确认 发送信息 4 需求分析 10 图 434 私聊流程图 聊天记录 需求描述:用户可以查询聊天的历史纪录,包括公聊记录和私聊记录。 执行者:用户 前置条件:用户正确登入后 后置条件:无 正常过程: 1) 发送、接收信息的同时将信息保存在本地文件中 2) 信息发送框中可以查询历史聊天记录 3) 从本地文件中读取信 息,并显示在记录显示匡中 异常过程(可选): 服务端异常导致客户端退出,客户端提示服务器异常。 客户端读取信息时目标文件不存在。 系统消息 需求描述:在聊天室的每一 个用户都能接收服务端发送的的信息提示消息 执行者:服务端 前置条件:服务端正常运行 后置条件:无 正常过程:服务器向所有在线用户发送消息 客户端接收到消息,进行消息处理,并正确显示 异常过程(可选): 1) 服务端异常,重启服务器 2) 出现网络异常,发送系统消息失败 3) 用户管理员通过启动服务器后,可以通过服务器操作界面象全部在线的用户发送系统消息 4) 用于发送公告,提示等系统消息,可以方便管理员和客户的交流和。基于java聊天室的设计与实现毕业设计报告
相关推荐
引擎解释执行程序代码的能力。 但 JSP 代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。 在 PHP、 ASP 、 JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。 普通的 HTML页面只依赖于 Web 服务器,而 PHP、 ASP 、 JSP 页面需要附加的语言引擎分析和执行程序代码。
位的计算方法。 (2)音频放大模块 因为声音信号经麦克风转换为电压信号以后是毫伏级的 , STM32 单片机中的 ADC 端口不能分辨出如此小的电压,故音频前置放大电路是声源定位系统中必不可少的。 由于所选择的麦克风频率范围为20~ 16KHz,为保证放大电路在麦克风的 频率范围内都能正常工作,所选择的运算放大器应有足够宽的带宽。 另外,所选择的模拟运算放大器应该具有较高的信噪比
(6)建立基准平面 DTM1,创建方法是通过 4步中的点且通过 5步骤中的直线。 (7)建立基准平面 DTM2,创建方法是经过 5步骤中的直线且与 6步骤中平面成 度。 (8)选中 3 步中的曲线并且选择上一步骤中的平面进行镜向操作。 (9)利用拉伸的方法获得齿轮毛坯,其中截面为直径为 个长度单位,拉伸深度为 个长度单位。 (10)进行拉伸去除材料操作,草绘第一个齿形,如图 3- 27 所示。
游戏进程中,积木落下来的速度越来越快,这样对玩家的挑战也就越来越大,游戏的难度也逐步增加。 俄罗斯方块游戏的规则 俄罗斯方块游戏的玩法非常简单易学,游戏界面是一个很高的长方形 2D 盒子,方块出现在盒子的上方,这些方块都由四个小方块组成,并按照各种方式排列,其中每一个方块都至少和另一个方块相 连。 然后,这些积木慢慢地落向盒子底部,玩家可以把这些方块左右移动或旋转。 一旦这个方块碰到阻碍
. 1 7 删 除 用 户 图 48 系统数据流程图 用户的登陆模块 网站首页总体采用上下结构的方式,首先给人以简捷的视觉外观,符合一个管理系统的风格。 本页有三项文本框需要进行填写,只有通过登陆成功之后才能进入以下页面进行相关的操作,在此处填写的“用户名”、“密码”和“验证码”都需要通过验证,只有数据库用户信息表 userlist 存在两者相互对应的用户名和密码,输入的验证码同随机产生的
IPv4 网络的投资和维护将持续增加,网络过渡代价将随之增 大。 s和 c成反比 : 参数 s由各种过渡技术及过渡技术组合方案在实际部署中的效率所决定 , 效率越高, c越小;反之越大; 随机量 r 对 c 的影响 : 随机量 r 指某种可以刺激 IPv6 部署的应用, r 的值越大, c的值约小。 我认为,目前网络过渡的一个关键问题是寻找这个随机量 r。 随着应用热点的转移,如 IPTV