版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上专心-专注-专业 JISHOUUNIVERSITY专业课课程论文题题 目:目:简单聊天系统的设计与实现作作 者:者:学学 号:号:所属学院:所属学院:信息科学与工程学院专业班级:专业班级:总总 评评 分:分:完成时间:完成时间:吉首大学信息科学与工程学院吉首大学信息科学与工程学院精选优质文档-倾情为你奉上专心-专注-专业 简单聊天系统的设计与实现(吉首大学信息科学与工程学院,湖南 吉首 )摘 要网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。在当今信息时代,越来越多的聊天工具被应用,java 语言是当今流行的网络
2、编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用 java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面 向对象的思想和设计方法解决实际问题的能力。 本程序正是用 java 语言实现了简单聊天功能。它是图形界面,线程,流与 文件系统等技术的综合应用。 其界面主要采用了 java.awt 包, java.swing 包等。关键词:网络聊天室;java;面向对象;通信机制;图形界面精选优质文档-倾情为你奉上专心-专注-专
3、业目 录 2.2.1 Eclipse.32.2.2 SQL Sever 数据库.3 3.1.1 经济可行性.4 3.1.2 操作可行性.4 3.1.3 技术可行性.4 3.2.1 注册.4 3.2.2 登录.5 3.2.3 私聊.5 5.3 消息格式化设计.10 5.4 界面设计.10 5.4.1 登录界面.10 5.4.2 注册界面.11 5.4.3 聊天界面.113 精选优质文档-倾情为你奉上专心-专注-专业第一章第一章引言引言当今主流的聊天工具有 QQ,MSN,网易泡泡等,国内最热门的聊天工具当属腾讯 QQ,是由深圳市腾讯计算机系统公司开发的,基于 Internet 的即时寻呼软件。你可
4、以通过 QQ 和你的亲朋好友进行交流,即时收发消息,文件传输,语音视频,发送邮件等功能,QQ 不仅仅在电脑在应用,还能通过移动电话登录手机腾讯网址或者下载手机可用的手机客户端进行 QQ 的登录使用。QQ 支持显示好友的在线信息,即时传送信息、即时交谈、即时发送文件和网址。QQ 可以在 Win95/98/NT/2000/XP/Win7 操作系统下运行,是十分灵活的网络通信工具。虽然 QQ 软件是免费的,而且功能也是越来越强大。但是唯一的不足的地方就是都需要在电脑联网的情况下才能使用,脱离了 Internet 根本就是一个只能看不能用的软件,为了能在脱离了 Internet 的情况下使用的局域网聊
5、天工具,那就必须要有服务器端,而本系统就是包括服务器端和客户端,可以在局域网聊天的一个软件。精选优质文档-倾情为你奉上专心-专注-专业第二章第二章关键技术关键技术2.1 开发技术2.1.1 什么是 JavaJava 是一种可以跨平台应用的面向对象的程序设计语言,他是由 Sun 公司在 1995年推出的程序设计语音。Java 具有很高的通用性,安全性,跨平台等特点。 Java 与一般的编译执行计算机语音和解释执行计算机语音不同。他它首先是将源代码编译成二进制的字节码,然后在各种不同平台的虚拟机上来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台的特性,这也是 Java 语言最大的特点。S
6、un 公司在推出 Java 后就将它作为一种开放式的技术,从而吸引了很多编程开发者。而 Sun 公司的口号之一就是“Java 语言是靠群体的力量而非公司的力量” ,并且获得了广大软件开发商的认可。2.1.2 主要特性Java 语言的主要特性有: 1)Java 语言是简单的。Java 语言的语法和 C 语言,C+语言很相近,从而使得大多数的程序员很容易学习。2)Java 语言是一个面向对象的。比 C+更纯粹的面向对象程序设计语言。3)Java 语言是分布式的。Java 的网络能力强大且易于使用。4)Java 语言是健壮的。Java 的强类型机制,异常处理,废料的自动收集等是Java 程序健壮性的
7、重要保证。5)Java 语言是安全的。Java 通常应用在网络环境中,因此Java 提供了一个安全机制来防止恶意代码的攻击。6)Java 语言是体系结构中立的。Java 程序在 Java 平台上被编译为体系结构中立的字节码格式, 然后可以在实现这个 Java 平台的任何系统中运行。7)Java 语言是可移植的。这种可移植行又来源于体系结构的中立性。8)Java 语言是解释型的。Java 程序在 Java 平台上被编辑为字节码格式,然后才可以在这个Java 平台的任何系统中运行。9)Java 是高性能的。与那些解释型的高级脚本语言相比,Java 的确是高性能的。10)Java 语言是多线程的。在
8、 Java 语言中,线程是特殊的对象,它必须由 Thread 类或其子类来创建。通常有两种方法创建:第一,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。第二,实现 Runnable 接口。2.1.3 Java 中的布局边框布局 BorderLayout、流布局 FlowLayout、网格布局 GridLayout、分组布局 精选优质文档-倾情为你奉上专心-专注-专业GroupLayout、Box 类布局。2.2开发工具2.2.1EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过
9、组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE) ,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统
10、一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+和 COBOL等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的一个突出例子是 IBM RationalSoftwareArchitect,它构成了 IBM Java 开发工具系列的基础。2.2.2SQL Server 数据库SQL 是英文 Structured
11、 Query Language 的缩写,意思为结构化查询语言。SQL 语言的主要功能就是同各种数据库建立联系,进行沟通。SQL Server 是由 Microsoft 开发和推广的关系数据库管理系统(DBMS) ,它最初是由 Microsoft、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。Microsoft SQL Server 近年来不断更新版本,1996 年,Microsoft 推出了 SQL Server 6.5 版本;1998 年,SQL Server 7.0 版本和用户见面;SQL Server 2000 是 Micr
12、osoft 公司于 2000 年推出,目前最新版本是 2012 年 3 月份推出的 SQL SERVER 2012。特点:1)真正的客户机/服务器体系结构。2)图形化用户界面,使系统管理和数据库管理更加直观、简单。3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4)SQL Server 与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server 也可以很好地与 Microsoft BackOffice 产品集成。 5)具有很好的伸缩性,可跨越从运行 Windows 95/98 的膝上型电脑到运行 Windows 200
13、0的大型多处理器等多种平台使用。6)对 Web 技术的支持,使用户能够很容易地将数据库精选优质文档-倾情为你奉上专心-专注-专业中的数据发布到 Web 页面上。7)SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的 DBMS 中才有。第三章第三章需求分析需求分析3.1 可行性分析3.1.1 经济可行性 本系统需要一个 SQL Server 数据库服务器,由于使用人数比较少,安装一个免费的SQL Server 数据库完全可以应付需要,所以成本就不用考虑了。3.1.2 操作可行性 只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全不存在问题
14、。3.1.3 技术可行性 本系统采用 Java 语言,是基于 CS 架构的。开发这个系统需要开发者对 socket 编程和 Java Swing 这两方面的技术比较熟。 由于本人长期从事于 java 语言编程,所以技术方面是可行的。3.2 功能分析3.2.1 注册 服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍贯,个人资料等,接受完毕后,便通过 JDBC 与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其号码。客户收到服务器返回的信息后,便打开主登陆窗口。3.2.2 登录 在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服
15、务器收到后,开始通过 JDBC 读取数据库,然后与用户输入的信息比较,如果成功,便精选优质文档-倾情为你奉上专心-专注-专业打开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在 icq 表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量用以存储好友的呢称,号码。3.2.3 私聊 私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。例如服务器接收到一个 A 发给 B 的消息先判断 B 是否已经在线,如果在线就将信息发送过去。B 接收到 A 发来的信息,如果是未
16、建立对话窗口,就询问是否建立对话,否则就丢弃信息。第四章第四章概要设计概要设计精选优质文档-倾情为你奉上专心-专注-专业4.1 系统总体结构 4.2 数据库设计 1.用户表(UserInfo): 属性:用户编号(uid) ,用户名(uname) ,密码(upass) ,登录ip 和端口号(ipport) ,状态(status) 。 关系:一个用户可以有多个好友。 一个用户可以有多条消息。1用户编号uid整数2用户名uname字符型3密码upass字符型4登录ip和端口号ipport字符型5状态status布尔型精选优质文档-倾情为你奉上专心-专注-专业 2.好友表(Friends): 属性:好
17、友编号(fid) ,用户好友编号(fuid) 。1好友编号fid整数2用户好友编号(外键,引用UserInfo中的uid)fuid整数 3.消息表(Messages): 属性:消息编号(mid) ,接受消息的用户编号(ruid) ,发送消息 的用户编号(suid) ,发送消息的时间(sendTime) ,消息 类型(mtype) 。1消息编号mid整数2接受用户的编号(外键,引用 UserInfo 中的 uid)ruid整数3发送用户的编号(外键,引用 UserInfo 中的 uid)suid整数4发送时间sendTime日期类型5消息类型mtype布尔型第五章第五章详细设计详细设计精选优质文
18、档-倾情为你奉上专心-专注-专业5.1 登录模块设计 该模块的界面是仿照腾讯 QQ 的界面,界面与腾讯 QQ 相比虽然不是那么美观,但是基本的功能也与其差不多了,在这个界面上用户的主要操作有用户输入用户名,密码,如果还没有注册用户名的网友可以通过登录界面的用户注册,从而使用该程序。在登录该程序之前需要开启服务器,当用户把用户名和密码输入好后点击登录按钮后,就开始与服务器建立连接,服务器收到后开始通过 JDBC 的方式读取数据库的内容,然后与用户输入的用户名和密码进行比较,如果用户名不存在或者用户的密码错误则登录失败,并且提示失败的原因,如果有时候没有把服务器开启的话,则在登录失败后,会提示连接
19、服务器超时。登录成功后直接跳到程序的主窗口,开始向服务器请求读取好友分组和好友名单。精选优质文档-倾情为你奉上专心-专注-专业5.2 注册模块设计 该模块是对于那些尚未注册的用户进行注册使用,在这个界面注册的用户需要填写的有,昵称,密码,确认密码,密保问题,问题答案,当这些内容填写完成以后,就可以点击提交注册按钮。点击这个按钮后就会创建一个与服务器端的连接。连接成功就会将填写的信息发送到服务器端。如果服务器写入数据库成功,那么你便注册成功,成功后会返回一个数字帐号给用户,这个时候你可以用你刚才注册成功的数字帐号和密码进行登录。精选优质文档-倾情为你奉上专心-专注-专业5.3 消息格式化设计 5
20、.4 界面设计5.4.1 登录界面 运行程序后,弹出登录界面,等待用户操作。 精选优质文档-倾情为你奉上专心-专注-专业5.4.2 注册界面在登录界面,点击“注册” ,弹出注册界面,按要求输入信息。 5.4.3 聊天界面 精选优质文档-倾情为你奉上专心-专注-专业结束语结束语课程设计的第一天我不是拿到任务书就开始敲代码,一整天我都是在看书上网络编程的知识。然后就是在网上找资料,找插件。本来最先开始我使用的是 TCP 协议进行通信,但是后来感觉聊天系统不需要对数据的传输有绝对的正确,况且是在通信状况非常好的局域网,所以我把协议改成了 UDP。设计的聊天窗口需要输入对方 IP,如果对方也启动了程序
21、就可以相互发送消息。如果不输入 IP 则默认的是向本机发送。数据库的连接也遇上了点小麻烦,查询数据库还比较顺利的,可是当要修改数据库时,试了多次都没添加进去。后来发现是因为我写的数据库连接的类查询和插入必须用两个不同的实例。不然数据集会在查询以后有所改变。界面的设计是用的我在网上找的 jigloo 插件。因为这个插件功能比较完善,而且添加的也很方便,直接解压到 ECLIPSE 文件夹就行了。起初我以为有了这个插件就可以像 VB 那样拖一拖就能完成。可是后来发现它与 VB 的界面设计完全不一样。最终还是要自己动手修改代码。所以我采取的措施是先把组件都设置好,然后自己添加事件、数据库的连接等等。好在组件设置好以后的 JFRAME 类的代码写的非常清楚。一个 MAIN 函数新建窗体实例,然后构造函数新建窗体,运用 initGUI()方法将组件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家对划定的18亿亩耕地红线乱占建房“零容忍”
- 子母车位买卖合同(2篇)
- 脑卒中护理课件
- 第二单元(复习)-四年级语文上册单元复习(统编版)
- 2024年河北省中考历史真题卷及答案解析
- 西南林业大学《城市公交规划与运营管理》2023-2024学年第一学期期末试卷
- 西京学院《设计制图》2021-2022学年第一学期期末试卷
- 电脑连接不了网络怎么办
- 西华师范大学《小学心理健康课程与教学》2021-2022学年第一学期期末试卷
- 西华师范大学《数字信号处理》2022-2023学年第一学期期末试卷
- 2023年中国铁路成都局集团有限公司招聘考试真题
- 广东省深圳市福田区红岭教育集团2024-2025学年七年级上学期期中考试数学试卷
- 上海市2020-2021学年七年级下学期数学校本作业133同位角内错角同旁内角
- 2024年第三届浙江技能大赛(供应链管理赛项)理论考试题库(含答案)
- 2023年温州鹿城区区属国企招聘选调笔试真题
- 封窗安全事故免责协议书范文
- 拆除石笼护坡施工方案
- 【7道人教版期中】安徽省怀宁县2023-2024学年七年级上学期期中考试道德与法治试卷(含详解)
- 管理经济学学习通超星期末考试答案章节答案2024年
- 9.2提高防护能力(课件)-2024-2025学年统编版道德与法治七年级上册
- 汽车修理业务受理程序、服务承诺、用户抱怨制度
评论
0/150
提交评论