简易聊天工具详细设计报告.doc
《简易聊天工具详细设计报告.doc》由会员分享,可在线阅读,更多相关《简易聊天工具详细设计报告.doc(32页珍藏版)》请在沃文网上搜索。
1、简易聊天工具总体设计报告班级: 网络工程10-1班姓名: 目 录一、 引言.11.1设计聊天工具的背景及意义.1 1.2 课题现状.11.3 开发平台介绍.1二、需求分析.22.1编写目标.22.2 可行性分析. 22.3分析需求. 22.3.1 功能需求分析.22.3.2 数据需求分析.22.3.3 性能需求分析.32.3.4系统运行需求.32.4本系统的主要功能部分组成:.32.4.1服务器端模块.32.4.2客户端模块.32.5 数据流图.42.5.1 顶层数据流图.42.5.2一层数据流图.42.5.3二层数据流图.5三、概要设计.63.1系统总模块图.63.2模块功能之间的关系.73
2、.2.1服务器端模块.73.2.1.1用户上下线识别及显示模块.73.2.1.2信息识别转发模块.73.2.2客户端模块.73.2.2.1用户注册模块.73.2.2.2用户登陆模块.73.2.2.3用户密码修改模块.73.3两大模块工作流程.83.4系统数据结构设计.93.4.1数据逻辑设计.93.4.2数据字典.9四、详细设计与编码实现 .104.1服务器端详细设计.104.1.1服务器界面设计.104.1.2服务器程序类.114.1.3服务器端连接用户的线程设计.124.1.4服务器端线程的管理.134.2客户端的详细设计.134.2.1界面包的设计(view包).144.2.1.1用户登
3、录界面.144.2.1.2用户好友列表界面.154.2.1.3用户聊天界面.184.2.2模块包的设计(model包).194.2.2.1客户端连接服务器类.194.2.2.2客户检查使用者类.204.2.3用户端工具包的设计(tools包).214.2.3.1客户端连接服务器线程类.214.2.3.2管理客户端连接服务器线程类.224.2.3.3管理用户的聊天界面的类.234.2.3.4管理好友列表、黑名单界面类.23 4.3公共包的详细设计.234.3.1User类.234.3.2包的种类定义类.244.3.3传输包定义类.24五、运行测试.261.首先开启服务器.262.进行用户登录.2
4、6 3.用户之间聊天.28六、结束语.29参考文献.3029一、 引言 1.1设计聊天工具的背景及意义随着计算机科学技术的飞速发展,网络越来越深刻的改变着人们生活方方面面。各种基于网络的应用技术在人们的政治、经济、生活等的各个方面都发挥着重要的作用。例如QQ,MSN等基于Internet的即时聊天工具。这些工具通过网络这个新兴的媒介进行信息交流相比其他传统媒介具有数据量大,实时性强,操作简单,成本低廉等优点。不仅如此即时聊工具还具备许多传统媒介不具备的强大功能,它们能传送文字、声音、影像和文档,而且能更加人性化的显示联络人的名单和通信状态。因而它们在现实生活中受到了广泛的欢迎,这是有目共睹的。
5、目前基于Internet的即时聊天工具已经做的非常完美,然而基于局域网的即时聊天工具却不如人意。而在高等教育方面,网络展现出不可替代的作用。为了适应现代信息化,教学局域网就应运而生。而教学局域网内的即时通信能力则显得尤为重要。所以对于学校和公司内部网络等机构,局域网即时聊天的应用还是相当重要的。一个好的局域网通信软件将对学校和公司的运作产生积极的影响。1.2 课题现状基于局域网的即时通信软件的核心技术其实与基于Internet的即时通信软件的设计技术是一样的,只是规模较小。基于Internet的通信工具一般是采用UDP或TCP协议来实现的,开发技术已经非常成熟。比如QQ、MSN等等,它们都是基
6、于Internet的即时通信软件,它们不仅实现了即时聊天、文件传输等功能,而且还能够实现网络即时视频、语音聊天功能。它们的功能正在不断扩充,使其更加人性化,满足人们更多的需求。这类软件其实都是在下层协议的基础之上,通过网络通信接口进行设计的软件产品。在局域网内,这类软件的设计比在Internet中设计更为简单。因为Internet是网络的网络,结构更为复杂,碰到的状况比在局域网中要多。而局域网中事情就简单的多了,所以局域网聊天工具在实现即时通信时就相对容易些了。1.3 开发平台介绍这次课题设计主要用Java语言,所以就选择相应的开发平台和工作、测试环境为MyEclipse。MyEclipse
7、是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。二、需求分析2.1编写目标聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客服机/服务器架构模式,也就是通常所简称的C/S模式。通过Java提供的Socket类来连
8、接客户机和服务器并使客户机与服务器之间相互通信。由于聊天是多点对多点的而Java提供的多线程功能,用多线程可完成多点对多点的聊天。主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现私聊,一对多聊,用户登陆,退出聊天系统等功能。2.2 可行性分析经济可行性: 由于本系统的主要背景是课程设计,不注重直接的
9、经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行Java软件的电脑便可,所以不用考虑到经济问题。 技术可行性: 使用Java作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。 运行可行性: 本系统为一个小型的局域网聊天系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。 综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足
10、的,因此,它在技术上是可行的2.3分析需求2.3.1 功能需求分析程序要实现的功能:程序启动之后要能够知道局域网内哪些用户在线,并可以与之通信;一旦某个网内用户上线或离线,需要立即更新信息,并通知所有在线用户;当双击用户列表中某个列表项时,要能够弹出信息发送框,并可以编辑要发送的信息,然后发送。2.3.2 数据需求分析对于局域网内的用户需要具体的数据信息来表示,服务器则需要一个保存所有用户信息数据表,其基本内容应包括用户ID,用户名,密码,状态,及IP地址。2.3.3 性能需求分析实用性:为局域网聊天提供方便,有效进行作业管理。操作简单:本系统应该适用于不同水平的使用者,包括事业单位和企业单位
11、,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。技术先进:产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。安装使用简便:服务器端的安装简洁明了,客户机无需再装任何软件就可以直接注册登陆聊天。适应性:应该能广泛应用于不同类型的企事业单位。系统采用模块化设计,用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用。 代码可读性好:文中的代码将尽可能简洁,易懂。2.3.4系统运行需求 运行环境:Windows 9x、2000、xp、2003,L
12、inux必要环境:JDK 1.5 以上硬件环境:CPU 400MHz以上,内存64MB以上2.4本系统的主要功能部分组成:2.4.1服务器端模块: 服务器启动,进行监听功能:转发用户传播的信息服务器自动更新用户状态信息2.4.2客户端模块:登陆服务器列出当前在线用户信息;聊天好友的的选择;发言:对输入的数据进行发送;离开状态;2.5 数据流图2.5.1 顶层数据流图聊天用户聊天用户简易聊天系统顶层数据流图2.5.2一层数据流图 聊天用户聊天用户客户端服务器端写聊天信息返回返回读取反馈/转发存储提交用户信息数据库一层数据流图2.5.3二层数据流图 用户用户登录用户发送信息客户端服务器端用户注册处
13、理用户退出聊天内容用户得到信息数据聊天信息监控服务器日志处理保存保存系统二层数据流图三、概要设计3.1系统总模块图信息识别转发模块用户上下线识别显示模块用户端服务器端简易聊天工具用户登陆模块用户注册模块用户密码修改模块用户聊天模块群聊模块单聊模块3.2模块功能之间的关系3.2.1服务器端模块3.2.1.1用户上下线识别及显示模块功能:服务器开启使用设定的端口进行监听,识别并显示用户上下线信息。目标:当有用户请求登陆时,服务器通过套接字获取用户端的IP地址以及用户名和对应密码,识别是否一致,从而显示用户在线信息,当用户下线时,断开连接,显示用户下线信息。基本实现用户状态与信息显示一致。3.2.1
14、.2信息识别转发模块功能:服务器将用户发送的信息接收、分析、存储并转发到目标用户。目标:服务器定义一个用z于存储要求请求连接用户的端口号以及该端口客户发送的信息的数组,该数组服务器、客户端共享,服务器将发送端的基本信息存储,目的段可以读取该信息,从而实现信息转发。3.2.2客户端模块3.2.2.1用户注册模块功能:实现用户账号的注册目标:通过用户端的一个线程与服务器数据库连接,用户输入创建的用户名、密码,若通过合法性检测,则将该用户注册的信息写入后台数据库3.2.2.2用户登陆模块功能:实现用户登陆。目标:用户输入用户名、密码并点击登陆,服务器端接收用户端登陆请求,存储请求信息,并进行检验,如
15、果通过合法性检测则进入聊天主界面。(1)群聊模块功能:能够进行类似于qq群聊的聊天功能。目标:客户端点击“发送信息”按钮,该客户端的ip地址、端口号以及信息内容一起打包写入服务器的存储数组,客户端通过线程可以读取该数组中的内容,从而实现群聊。(2)单聊模块 功能:能够进行点对点的聊天方式。 目标:客户端用户点击“开始私聊”按钮,输入对方的昵称以及ip地址,从而该用户开启端口用于监听,同时定义输入、输出流文件,客户端延迟片刻,然后与该端口取得连接。当任意一方点击“发送信息”按钮时,和群聊同一机理,通过读取共享文件内容实现私聊。3.2.2.3用户密码修改模块功能:用户能够修改自己账号的密码。目标:
16、用户输入用户名、旧密码、新密码,服务器端接收用户端密码修改请求,存储修改信息,并进行检验,若通过合法性检测,则把修改后的信息重新写入后台数据库。3.3两大模块工作流程启动服务器输入服务器IP显示用户停止监听等待开始监听输入端口号用户连接请求是否设置系统公告退出系统保存修改记录聊天记录显示在线人数YesNo 启动客户端窗口输入qq号码输入密码登录验证成功进入客户端聊天室发布公开消息悄悄话发布隐蔽消息选择聊天对象选择断开连接退出系统NoYes客户端工作流程图服务器端工作流程图 3.4系统数据结构设计3.4.1数据逻辑设计组成(用户qq,状态,好友,分组)用户qq(qq号码,昵称,密码,性别,年龄,
17、好友名字,分组名称)状态(qq号码,是否在线,ip地址,端口)好友(好友qq号码,好友名字,所在分组名字)分组(分组ID,分组名称,所属qq号码)3.4.2数据字典名称取值类型长度描述位置QQ号码Int5-8唯一标示用户,不可为空用户qq表,状态表昵称Char8用户昵称用户qq表密码Char6-16用户身份鉴定,不可为空用户qq表性别Char2用户性别,可空用户qq表年龄Smallint0-99用户年龄,可空用户qq表好友名字Char8好友昵称用户qq表,好友表分组名称Char8分组名字用户qq表,分组表是否在线Int1记录当前用户状态,不可为空状态表Ip地址Int32当前登录IP地址状态表端
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 聊天工具 详细 设计 报告
