




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、简单聊天系统的设计与实现JISHOU UNIVERSITY专业课课程论文口简单聊天系统的设计与实现作者:学号:所属 学院:信息科学与工程学院专业班级:总评分:完成时间:吉首大学信息科学与工程学院简单聊天系统的设计与实现(吉首大学信息科学与工程学院,湖南吉首416000)摘要网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在 同一聊天室的人们通过广播消息进行实时交谈。在当今信息时代,越来越多 的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对 象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企 业级的分布式应用系统,还能够为小型的的,嵌入式设备进
2、行应用程序的开 发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然 地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思 想和设计方法解决实际问题的能力。本程序正是用java语言实现了简单聊 天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面 主要采用了 java, awt包,java, swing包等。关键词:网络聊天室;java;面向对象;通信机制;图形界面3.1.3技术可行1.2. 1Eclipse32 . 2. 2 SQL Sever 数据库32.1.1 经济可行性42.1.2 操作可行性43 . 2. 1 注册44 .2.2 登录55 .2
3、.3 私聊55. 3消息格式化设计105. 4界面设计105. 4. 1登录界面105. 4. 2注册界面115. 4. 3聊天界面11第一章 引言当今主流的聊天工具有QQ, MSN,网易泡泡等,国内最热门的聊天工 具当属腾讯QQ,是由深圳市腾讯计算机系统公司开发的,基于Internet 的即时寻呼软件。你可以通过QQ和你的亲朋好友进行交流,即时收发消 息,文件传输,语音视频,发送邮件等功能,QQ不仅仅在电脑在应用, 还能通过移动电话登录手机腾讯网址或者下载手机可用的手机客户端进 行QQ的登录使用。QQ支持显示好友的在线信息,即时传送信息、即时交 谈、即时发送文件和网址。QQ可以在Win95/
4、98/NT/2000/XP/Win7操作系 统下运行,是十分灵活的网络通信工具。虽然QQ软件是免费的,而且功能也是越来越强大。但是唯一的不足 的地方就是都需要在电脑联网的情况下才能使用,脱离了 Internet根本 就是一个只能看不能用的软件,为了能在脱离了 Internet的情况下使用 的局域网聊天工具,那就必须要有服务器端,而本系统就是包括服务器 端和客户端,可以在局域网聊天的一个软件。第二章关键技术2.1开发技术2. 1. 1什么是JavaJava是一种可以跨平台应用的面向对象的程序设计语言,他是由 Sun公司在1995年推出的程序设计语音。Java具有很高的通用性,安全 性,跨平台等特
5、点。Java与一般的编译执行计算机语音和解释执行计算 机语音不同。他它首先是将源代码编译成二进制的字节码,然后在各种 不同平台的虚拟机上来解释执行字节码,从而实现了 “一次编译、到处 执行”的跨平台的特性,这也是Java语言最大的特点。Sun公司在推出 Java后就将它作为一种开放式的技术,从而吸引了很多编程开发者。而 Sun公司的口号之一就是“Java语言是靠群体的力量而非公司的力 量”,并且获得了广大软件开发商的认可。Java语言的主要特性有:1) Java语言是简单的。Java语言的语 法和C语言,C+语言很相近,从而使得大多数的程序员很容易学习。 2) Java语言是一个面向对象的。比
6、C+更纯粹的面向对象程序设计语 言。3) Java语言是分布式的。Java的网络能力强大且易于使用。4) Java语言是健壮的。Java的强类型机制,异常处理,废料的自动收集等 是Java程序健壮性的重要保证。5) Java语言是安全的。Java通常应用 在网络环境中,因此Java提供了一个安全机制来防止恶意代码的攻击。 6) Java语言是体系结构中立的。Java程序在Java平台上被编译为体系 结构中立的字节码格式,然后可以在实现这个Java平台的任何系统中运 行。7) Java语言是可移植的。这种可移植行又来源于体系结构的中立 性。8) Java语言是解释型的。Java程序在Java平台
7、上被编辑为字节码 格式,然后才可以在这个Java平台的任何系统中运行。9) Java是高性 能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。10) Java语言是多线程的。在Java语言中,线程是特殊的对象,它必须由 Thread类或其子类来创建。通常有两种方法创建:第一,从Thread类派 生出子类并重写run方法,使用该子类创建的对象即为线程。第二,实 现 Runnable 接口。2. 2. 2 SQL Server 数据库边框布局BorderLayout流布局FlowLayouts网格布局GridLayout、分组布局 GroupLayoutBox 类布.局。2. 2 开发
8、工具2 . 2. 1 EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其 本身而言,它只是一个框架和一组服务,用于通过组件构建开发环境。 幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具 (Java Development Kit, JDK)。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE) 来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境 (Plug-in Development Environment, PDE),这个组件主要针对希望 扩展Eclipse的软件开发人员,因为它允许他们构建与
9、Eclipse环境无 缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具 开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用 Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如 C/C+和COBOL等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内 容管理系统。基于Eclipse的应用程序的一个突出例子是IBM RationalSoftwareArchitect,它构成IBM
10、 Java开发工具系列的基 础。SQL是英文Structured 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 版本和用户见面;
11、SQL Server 2000 是 Microsoft 公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012o特点:1).真正的客户机/服务器体系结构。2).图形化用户界面, 使系统管理和数据库管理更加直观、简单。3).丰富的编程接口工具, 为用户进行程序设计提供了更大的选择余地。4). SQL Server与 Windows NT完全集成,利用了 NT的许多功能,如发送和接受消息,管理 登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品 集成。5).具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型
12、电脑到运行Windows 2000的大型多处理港等多种平台使用。6).对Web 技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面 上。7). SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。第三章 需求分析2.1 可行性分析3.1.1经济可行性本系统需要一个SQL Server数据库服务器,由于使用人数比较少, 安装一个免费的SQL Server数据库完全可以应付需要,所以成本就不用 考虑了。3. 1. 2操作可行性只要一台以上计算机连接在同一个局域网内,本系统就可以安装使 用,所以操作上完全不存在问题。3.1. 3技术可行性本系统采用
13、Java语言,是基于CS架构的。开发这个系统需要开发 者对socket编程和Java Swing这两方面的技术比较熟。由于本人长期从事于java语言编程,所以技术方面是可行的。3. 2功能分析3 . 2. 1注册服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客 户的呢称,性别,籍贯,个人资料等,接受完毕后,便通过JDBC与后台 数据库连接,然后向数据库添加记录,如果成功,便向客户返回其号 码。客户收到服务器返回的信息后,便打开主登陆窗口。4 .2.2登录在客户端,用户输入其号码和密码,然后建立与服务器的连接,告 诉服务器我要登录,服务器收到后,开始通过JDBC读取数据库,然后与 用户
14、输入的信息比较,如果成功,便打开主程序窗口。然后客户向服务 落请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得 到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些 信息,客户收到后就在主窗口显示好友,并且建立儿个矢量用以存储好 友的呢称,号码。5 .2.3私聊私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根 据发送人信息和接收者信息来转发。例如服务器接收到一个A发给B的消息先判断B是否已经在线,如果在线就将信息发送过去。B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。第四章 概要设计1. 1系统总体结构4. 2数据库设计1 .
15、用户表(Userinfo): 属性:用户编号(uid),用户名(uname),密码(upass),登录ip和端口号(ipport),状态(status) o关系:一个用户可以有多个好友。 一个用户可以有多条消息。1用户编号uid整数2用户名uname字符型3密码upass字符型4登录ip和端口号ipport字符型5状态status布尔型2.好友表(Friends):属性:好友编号(fid),用户好友编号(fuid)。1好友编号fid整数2用户好友编号(外键,引用Userinfo 中的 uid)fuid整数3.消息表(Messages):属性:消息编号(mid),接受消息的用户编号(ruid),
16、 发送消息的用户编号(suid),发送消息的时间(sendTime),消息类型(mtype)。1消息编号mid整数2接受用户的编号 (外键,引用Userinfo 中的 uid)ruid整数3发送用户的编号 (外键,引用Userinfo 中的 uid)suid整数4发送时间sendTime日期类型5消息类型mtype布尔型第五章 详细设计5.1登录模块设计该模块的界面是仿照腾讯QQ的界面,界面与腾讯QQ相比虽然不是 那么美观,但是基本的功能也与其差不多了,在这个界面上用户的主要 操作有用户输入用户名,密码,如果还没有注册用户名的网友可以通过 登录界面的用户注册,从而使用该程序。在登录该程序之前需
17、要开启服 务器,当用户把用户名和密码输入好后点击登录按钮后,就开始与服务 器建立连接,服务器收到后开始通过JDBC的方式读取数据库的内容,然 后与用户输入的用户名和密码进行比较,如果用户名不存在或者用户的 密码错误则登录失败,并且提示失败的原因,如果有时候没有把服务器 开启的话,则在登录失败后,会提示连接服务器超时。登录成功后直接跳到程序的主窗口,开始向服务器请求读取好友分组和好友名单。5. 2注册模块设计该模块是对于那些尚未注册的用户进行注册使用,在这个界面注册 的用户需要填写的有,昵称,密码,确认密码,密保问题,问题答案, 当这些内容填写完成以后,就可以点击提交注册按钮。点击这个按钮后 就
18、会创建一个与服务器端的连接。连接成功就会将填写的信息发送到服 务器端。如果服务器写入数据库成功,那么你便注册成功,成功后会返 回一个数字帐号给用户,这个时候你可以用你刚才注册成功的数字帐号 和密码进行登录。5. 3消息格式化设计5. 4界面设计5.1.1 登录界面运行程序后,弹出登录界面,等待用户操作。5. 4. 2注册界面在登录界面,点击“注册”,弹出注册界面,按要求输入信息。5.4.3聊天界面结束语课程设计的第一天我不是拿到任务书就开始敲代码,一整天我都是 在看书上网络编程的知识。然后就是在网上找资料,找插件。本来最先 开始我使用的是TCP协议进行通信,但是后来感觉聊天系统不需要对数 据的
19、传输有绝对的正确,况且是在通信状况非常好的局域网,所以我把 协议改成了 UDP。设计的聊天窗口需要输入对方IP,如果对方也启动了 程序就可以相互发送消息。如果不输入IP则默认的是向本机发送。数据 库的连接也遇上了点小麻烦,查询数据库还比较顺利的,可是当要修改 数据库时,试了多次都没添加进去。后来发现是因为我写的数据库连接 的类查询和插入必须用两个不同的实例。不然数据集会在查询以后有所 改变。界面的设计是用的我在网上找的jigl。插件。因为这个插件功能 比较完善,而且添加的也很方便,直接解压到ECLIPSE文件夹就行了。 起初我以为有了这个插件就可以像VB那样拖一拖就能完成。可是后来发 现它与VB的界面设计完全不一样。最终还是要自己动手修改代码。所以 我采取的措施是先把组件都设置好,然后自己添加事件、数据库的连接 等等。好在组件设置好以后的JFRAME类的代码写的非常清楚。一个MAIN 函数新建窗体实例,然后构造函数新建窗体,运用initGUI。方法将组件 都赋值,设置大小等。清楚简洁,所以添加功能比较方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从化区水利管理办法
- 中小学财务管理办法
- 环保部培训管理办法
- 阿里招聘管理办法
- 上网课宿舍管理办法
- 环保监测费管理办法
- 温州创新券管理办法
- 鹅场饲养管理办法
- 检验与报告管理办法
- 乌市保障房管理办法
- 沈阳市高校毕业生“三支一扶”计划招募笔试真题2024
- 消防作战训练安全课件
- 微生物驱动的资源循环系统研究-洞察阐释
- 监管公司准入管理制度
- 2025-2030中国超宽带UWB定位行业创新策略及未来趋势建设现状报告
- 医院防汛救灾管理制度
- 更年期保健专科建设和管理指南
- 2025年能源产业创新发展中的人才需求与培养策略研究报告
- DB43-T 2066-2021 河湖管理范围划定技术规程
- 《西游记》中师徒四人形象的现代解读与意义
- 2025-2030年圆弧玻璃项目商业计划书
评论
0/150
提交评论