简单聊天系统的设计与实现_第1页
简单聊天系统的设计与实现_第2页
简单聊天系统的设计与实现_第3页
简单聊天系统的设计与实现_第4页
简单聊天系统的设计与实现_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简单聊天系统的设计与实现简单聊天系统的设计与实现信息科学与工程学院JISHOU UNIVERSITY专业课课程论文题 目:作 者: 学 号: 所属学院: 专业班级: 总评分:完成时间:吉首大学信息科学与工程学院简单聊天系统的设计与实现(吉首大学信息科学与工程学院,湖南吉首416000)摘要网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊 天室的人们通过广播消息进行实时交谈。在当今信息时代,越来越多的聊天工具被 应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全, 多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够 为小型的

2、的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行 的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼 我们熟练地应用面向对象的思想和设计方法解决实际问题的能力。本程序正是用 java语言实现了简单聊天功能。它是图形界面,线程,流与文件系统等技术的综合 应用。其界面主要采用了 java.awt包,java.swing包等。关键词:网络聊天室;java;面向对象;通信机制;图形界面第一章引言1 TOC o 1-5 h z HYPERLINK l bookmark20 o Current Document 第二章关键技术2 HYPERLINK l bookmar

3、k23 o Current Document 2.1开发技术2什么是 Java 22.1.2主要特性2 HYPERLINK l bookmark26 o Current Document 2.1.3 Java中的布局3 HYPERLINK l bookmark29 o Current Document 2.2开发工具3 HYPERLINK l bookmark32 o Current Document Eclipse3 HYPERLINK l bookmark36 o Current Document SQL Sever 数据库3 HYPERLINK l bookmark40 o Curren

4、t Document 第三章需求分析4 HYPERLINK l bookmark43 o Current Document 3.1可行性分析4经济可行性43.1.2操作可行性43.1.3技术可行性4 HYPERLINK l bookmark46 o Current Document 3.2功能分析4 HYPERLINK l bookmark49 o Current Document 注册4 HYPERLINK l bookmark52 o Current Document 登录5 HYPERLINK l bookmark55 o Current Document 私聊5 HYPERLINK l

5、 bookmark58 o Current Document 第四章概要设计6 HYPERLINK l bookmark61 o Current Document 4.1系统总体结构6 HYPERLINK l bookmark64 o Current Document 4.2数据库设计6 HYPERLINK l bookmark67 o Current Document 第五章详细设计8 HYPERLINK l bookmark70 o Current Document 5.1登录模块设计8 HYPERLINK l bookmark73 o Current Document 5.2注册模块设计

6、9 HYPERLINK l bookmark76 o Current Document 5.3消息格式化设计10 HYPERLINK l bookmark79 o Current Document 5.4界面设计105.4.1登录界面105.4.2注册界面115.4.3聊天界面11 HYPERLINK l bookmark82 o Current Document 结束语12参考文献123第一章引言当今主流的聊天工具有QQ, MSN,网易泡泡等,国内最热门的聊天工具当 属腾讯QQ,是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼 软件。你可以通过QQ和你的亲朋好友进行交流,即

7、时收发消息,文件传输,语 音视频,发送邮件等功能,QQ不仅仅在电脑在应用,还能通过移动电话登录手 机腾讯网址或者下载手机可用的手机客户端进行QQ的登录使用。QQ支持显示 好友的在线信息,即时传送信息、即时交谈、即时发送文件和网址。QQ可以在 Win95/98/NT/2000/XP/Win7操作系统下运行,是十分灵活的网络通信工具。虽然QQ软件是免费的,而且功能也是越来越强大。但是唯一的不足的地方 就是都需要在电脑联网的情况下才能使用,脱离了 Internet根本就是一个只能看 不能用的软件,为了能在脱离了 Internet的情况下使用的局域网聊天工具,那就 必须要有服务器端,而本系统就是包括服

8、务器端和客户端,可以在局域网聊天的 一个软件。第二章关键技术2.1开发技术2.1.1什么是JavaJava是一种可以跨平台应用的面向对象的程序设计语言,他是由Sun公司在1995 年推出的程序设计语音。Java具有很高的通用性,安全性,跨平台等特点。Java与一般的 编译执行计算机语音和解释执行计算机语音不同。他它首先是将源代码编译成二进制的字节 码,然后在各种不同平台的虚拟机上来解释执行字节码,从而实现了 “一次编译、到处执行” 的跨平台的特性,这也是Java语言最大的特点。Sun公司在推出Java后就将它作为一种开 放式的技术,从而吸引了很多编程开发者。而Sun公司的口号之一就是“Java

9、语言是靠群 体的力量而非公司的力量”,并且获得了广大软件开发商的认可。2.1.2主要特性Java语言的主要特性有:1)Java语言是简单的。Java语言的语法和C语言,C+ 语言很相近,从而使得大多数的程序员很容易学习。2)Java语言是一个面向对象的。比C+ 更纯粹的面向对象程序设计语言。3)Java语言是分布式的。Java的网络能力强大且易于使 用。4)Java语言是健壮的。Java的强类型机制,异常处理,废料的自动收集等是Java程序 健壮性的重要保证。5)Java语言是安全的。Java通常应用在网络环境中,因此Java提供了 一个安全机制来防止恶意代码的攻击。6)Java语言是体系结构

10、中立的。Java程序在Java平 台上被编译为体系结构中立的字节码格式,然后可以在实现这个Java平台的任何系统中运 行。7)Java语言是可移植的。这种可移植行又来源于体系结构的中立性。8)Java语言是解 释型的。Java程序在Java平台上被编辑为字节码格式,然后才可以在这个Java平台的任何 系统中运行。9)Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能 的。10)Java语言是多线程的。在Java语言中,线程是特殊的对象,它必须由Thread类或 其子类来创建。通常有两种方法创建:第一,从Thread类派生出子类并重写run方法,使 用该子类创建的对象即为线

11、程。第二,实现Runnable接口。2.1.3 Java中的布局边框布局 BorderLayout、流布局 FlowLayout、网 格布局 GridLayout、分组布局 2GroupLayout、Box 类布局。2.2 开发工具EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言, 它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用, 但Eclipse的

12、目标却不仅限于此。Eclipse还包括插件开发环境(Plug-in DevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件 开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中 的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的 集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言 开发的,但它的用途并不限于Java语言;例如,支持诸如C/C+和COBOL等编 程语言的插件已经可用,或预计将会推出。Eclip

13、se框架还可用来作为与软件开 发无关的其他应用程序类型的基础,比如内容管理系统。基于Eclipse的应用程序的一个突出例子是IBMRationalSoftwareArchitect, 它构成了 IBMJava开发工具系列的基础。SQL Server 数据库SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主 要功能就是同各种数据库建立联系,进行沟通。SQL Server是由Microsoft开发和推广的关 系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开 发的,并于1988年推出

14、了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本, 1996 年,Microsoft 推出 了 SQL Server 6.5 版本;1998 年,SQL Server7.0 版本和用户见面; SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的 SQL SERVER 2012。特点:1).真正的客户机/服务器体系结构。2).图形化用户界面,使系统管理和数据库 管理更加直观、简单。3).丰富的编程接口工具,为用户进行程序设计提供了更大的选择余 地。4). SQL Server与Windows NT完全集成,利

15、用了NT的许多功能,如发送和接受消息, 管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。5).具有 很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多 处理器等多种平台使用。6).对Web技术的支持,使用户能够很容易地将数据库中的数据 发布到Web页面上。7). SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂 贵的DBMS中才有。第三章需求分析3.1可行性分析3.1.1经济可行性本系统需要一个SQL Server数据库服务器,由于使用人数比较少,安装一个免费的SQ

16、L Server数据库完全可以应付需要,所以成本就不用考虑了。3.1.2操作可行性只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全 不存在问题。3.1.3技术可行性本系统采用Java语言,是基于CS架构的。开发这个系统需要开发者对socket编程和 Java Swing这两方面的技术比较熟。由于本人长期从事于java语言编程,所以技术方面是 可行的。3.2功能分析3.2.1注册服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍 贯,个人资料等,接受完毕后,便通过JDBC与后台数据库连接,然后向数据库添加记录, 如果成功,便向客户返回其号码。

17、客户收到服务器返回的信息后,便打开主登陆窗口。3.2.2登录在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录, 服务器收到后,开始通过JDBC读取数据库,然后与用户输入的信息比较,如果成功,便打 开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库 中的表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客 户收到后就在主窗口显示好友,并且建立几个矢量用以存储好友的呢称,号码。3.2.3私聊私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根据发送人信息和接收 者信息来转发。例如服务器接收到一个A发给B的消息先

18、判断B是否已经在线,如果在线 就将信息发送过去。B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对 话,否则就丢弃信息。第四章概要设计4.1系统总体结构阵邪M:门!阵邪M:门!4.2数据库设计1.用户表(UserInfo):属性:用户编号(uid),用户名(uname),密码(upass),登录ip 和端口号(ipport),状态(status)。关系:一个用户可以有多个好友。一个用户可以有多条消息。1用户编号uid整数2用户名uname字符型3密码upass字符型4登录ip和端口号ipport字符型5状态status布尔型2.好友表(Friends):属性:好友编号(fid),用户

19、好友编号(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布尔型第五章详细设计5.1登录模块设计该模块的界面是仿照腾讯QQ的界面,界面与腾讯QQ相

20、比虽然不是那么美观,但是基 本的功能也与其差不多了,在这个界面上用户的主要操作有用户输入用户名,密码,如果还 没有注册用户名的网友可以通过登录界面的用户注册,从而使用该程序。在登录该程序之前 需要开启服务器,当用户把用户名和密码输入好后点击登录按钮后,就开始与服务器建立连 接,服务器收到后开始通过JDBC的方式读取数据库的内容,然后与用户输入的用户名和密 码进行比较,如果用户名不存在或者用户的密码错误则登录失败,并且提示失败的原因,如 果有时候没有把服务器开启的话,则在登录失败后,会提示连接服务器超时。登录成功后直 接跳到程序的主窗口,开始向服务器请求读取好友分组和好友名单。5.2注册模块设计

21、该模块是对于那些尚未注册的用户进行注册使用,在这个界面注册的用户需要填写的 有,昵称,密码,确认密码,密保问题,问题答案,当这些内容填写完成以后,就可以点击 提交注册按钮。点击这个按钮后就会创建一个与服务器端的连接。连接成功就会将填写的信 息发送到服务器端。如果服务器写入数据库成功,那么你便注册成功,成功后会返回一个数 字帐号给用户,这个时候你可以用你刚才注册成功的数字帐号和密码进行登录。5.3消息格式化设计5.4界面设计5.4.1登录界面运行程序后,弹出登录界面,等待用户操作。5.4.2注册界面在登录界面,点击“注册”,弹出注册界面,按要求输入信息。5.4.3聊天界面Q sfii进入聊天室孑

22、茶含浚痍展於藐魏漆3/ 口国我说:hello!192.16875.40: howreyou!我说;fine .Thank you!192.188.7S.40: Urn glad to see you!孤说:me.too192.160.750: bye!Kiffi:响192.1 S3 75 40发送退出结束语课程设计的第一天我不是拿到任务书就开始敲代码,一整天我都是在看书上 网络编程的知识。然后就是在网上找资料,找插件。本来最先开始我使用的是 TCP协议进行通信,但是后来感觉聊天系统不需要对数据的传输有绝对的正确, 况且是在通信状况非常好的局域网,所以我把协议改成了 UDP。设计的聊天窗 口需要输入对方IP,如果对方也启动了程序就可以相互发送消息。如果不输入 IP则默认的是向本机发送。数据库的连接也遇上了点小麻烦,查询数据库还比 较顺利的,可是当要修改数据库时,试了多次都没添加进去。后来发现是因为我 写的数据库连接的类查询和插入必须用两个不同的实例。不然数据集会在查询以 后有所改变。界面的设计是用的我在网上找的jigloo插件。因为这个插件功能比 较完善,而且添加的也很方便,直接解压到ECLIPSE文件夹就行了。起初我以 为有了这个插件就可以像VB那样拖一拖就能完成。可是后来发现它与VB的界 面设计完全不一样。最终还是要自己动手修改代码。所以我采

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论