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

下载本文档

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

文档简介

JISHOUJISHOU UNIVERSITYUNIVERSITY 专业课课程论文 题题 目 目 简单聊天系统的设计与实现 作作 者 者 学学 号 号 所属学院 所属学院 信息科学与工程学院 专业班级 专业班级 总总 评评 分 分 完成时间 完成时间 吉首大学信息科学与工程学院吉首大学信息科学与工程学院 精品文档 1欢迎下载1欢迎下载 简单聊天系统的设计与实现 吉首大学信息科学与工程学院 湖南 吉首 416000 摘 要 网络聊天室通常直称聊天室 是一种人们可以在线交谈的网络论坛 在同一聊 天室的人们通过广播消息进行实时交谈 在当今信息时代 越来越多的聊天工具被 应用 java 语言是当今流行的网络编程语言 它具有面向对象 与平台无关 安全 多线程等特点 使用 java 语言不仅可以实现大型企业级的分布式应用系统 还能 够为小型的的 嵌入式设备进行应用程序的开发 面向对象的开发是当今世界最流 行的开发方法 它不仅具有更贴近自然地语义 而且有利于软件的维护和继承 锻 炼我们熟练地应用面 向对象的思想和设计方法解决实际问题的能力 本程序正是 用 java 语言实现了简单聊天功能 它是图形界面 线程 流与 文件系统等技术 的综合应用 其界面主要采用了 java awt 包 java swing 包等 关键词 网络聊天室 java 面向对象 通信机制 图形界面 目 录 第一章 引言 1 第二章 关键技术 2 2 1 开发技术 2 2 1 1 什么是 Java 2 2 1 2 主要特性 2 2 1 3 Java 中的布局 3 2 2 开发工具 3 2 2 1 Eclipse 3 2 2 2 SQL Sever 数据库 3 第三章 需求分析 4 3 1 可行性分析 4 3 1 1 经济可行性 4 3 1 2 操作可行性 4 3 1 3 技术可行性 4 3 2 功能分析 4 3 2 1 注册 4 3 2 2 登录 5 3 2 3 私聊 5 第四章 概要设计 6 精品文档 1欢迎下载1欢迎下载 4 1 系统总体结构 6 4 2 数据库设计 6 第五章 详细设计 8 5 1 登录模块设计 8 5 2 注册模块设计 9 5 3 消息格式化设计 10 5 4 界面设计 10 5 4 1 登录界面 10 5 4 2 注册界面 11 5 4 3 聊天界面 11 结束语 12 参考文献 13 精品文档 2欢迎下载2欢迎下载2欢迎下载2欢迎下载 第一章第一章引言引言 当今主流的聊天工具有 QQ MSN 网易泡泡等 国内最热门的聊天工具当 属腾讯 QQ 是由深圳市腾讯计算机系统公司开发的 基于 Internet 的即时寻 呼软件 你可以通过 QQ 和你的亲朋好友进行交流 即时收发消息 文件传输 语音视频 发送邮件等功能 QQ 不仅仅在电脑在应用 还能通过移动电话登录 手机腾讯网址或者下载手机可用的手机客户端进行 QQ 的登录使用 QQ 支持显 示好友的在线信息 即时传送信息 即时交谈 即时发送文件和网址 QQ 可以 在 Win95 98 NT 2000 XP Win7 操作系统下运行 是十分灵活的网络通信工具 虽然 QQ 软件是免费的 而且功能也是越来越强大 但是唯一的不足的地方 就是都需要在电脑联网的情况下才能使用 脱离了 Internet 根本就是一个只能 看不能用的软件 为了能在脱离了 Internet 的情况下使用的局域网聊天工具 那就必须要有服务器端 而本系统就是包括服务器端和客户端 可以在局域网 聊天的一个软件 精品文档 3欢迎下载3欢迎下载3欢迎下载3欢迎下载 第二章第二章关键技术关键技术 2 1 开发技术 2 1 1 什么是 Java Java 是一种可以跨平台应用的面向对象的程序设计语言 他是由 Sun 公司在 1995 年推出的程序设计语音 Java 具有很高的通用性 安全性 跨平台等特点 Java 与一般 的编译执行计算机语音和解释执行计算机语音不同 他它首先是将源代码编译成二进制的 字节码 然后在各种不同平台的虚拟机上来解释执行字节码 从而实现了 一次编译 到 处执行 的跨平台的特性 这也是 Java 语言最大的特点 Sun 公司在推出 Java 后就将它 作为一种开放式的技术 从而吸引了很多编程开发者 而 Sun 公司的口号之一就是 Java 语言是靠群体的力量而非公司的力量 并且获得了广大软件开发商的认可 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 语言是体系结构中立的 Java 程序在 Java 平台上被编译为体系结构中立的字节码格式 然后可以在实现这个 Java 平台的任何系统中运行 7 Java 语言是可移植的 这种可移植行又来源于体系结构的中 立性 8 Java 语言是解释型的 Java 程序在 Java 平台上被编辑为字节码格式 然后才可 以在这个 Java 平台的任何系统中运行 9 Java 是高性能的 与那些解释型的高级脚本语 言相比 Java 的确是高性能的 10 Java 语言是多线程的 在 Java 语言中 线程是特殊 的对象 它必须由 Thread 类或其子类来创建 通常有两种方法创建 第一 从 Thread 类 派生出子类并重写 run 方法 使用该子类创建的对象即为线程 第二 实现 Runnable 接口 精品文档 4欢迎下载4欢迎下载4欢迎下载4欢迎下载 2 1 3 Java 中的布局 边框布局 BorderLayout 流布局 FlowLayout 网格布局 GridLayout 分组布局 GroupLayout Box 类布局 2 2开发工具 2 2 1 Eclipse Eclipse 是一个开放源代码的 基于 Java 的可扩展开发平台 就其本身而 言 它只是一个框架和一组服务 用于通过插件组件构建开发环境 幸运的是 Eclipse 附带了一个标准的插件集 包括 Java 开发工具 Java Development Kit JDK 虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境 IDE 来使用 但 Eclipse 的目标却不仅限于此 Eclipse 还包括插件开发环境 Plug in Development Environment PDE 这个组件主要针对希望扩展 Eclipse 的软件 开发人员 因为它允许他们构建与 Eclipse 环境无缝集成的工具 由于 Eclipse 中的每样东西都是插件 对于给 Eclipse 提供插件 以及给用户提供 一致和统一的集成开发环境而言 所有工具开发人员都具有同等的发挥场所 这种平等和一致性并不仅限于 Java 开发工具 尽管 Eclipse 是使用 Java 语言开发的 但它的用途并不限于 Java 语言 例如 支持诸如 C C 和 COBOL 等编程语言的插件已经可用 或预计将会推出 Eclipse 框架还可用来作为与 软件开发无关的其他应用程序类型的基础 比如内容管理系统 基于 Eclipse 的应用程序的一个突出例子是 IBM RationalSoftwareArchitect 它构成了 IBM Java 开发工具系列的基础 2 2 2 SQL Server 数据库 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 版 本和用户见面 SQL Server 2000 是 Microsoft 公司于 2000 年推出 目前最新版本是 2012 年 3 月份推出的 SQL SERVER 2012 特点 1 真正的客户机 服务器体系结构 2 图形化用户界面 使系统管理和数据 精品文档 5欢迎下载5欢迎下载5欢迎下载5欢迎下载 库管理更加直观 简单 3 丰富的编程接口工具 为用户进行程序设计提供了更大的选 择余地 4 SQL Server 与 Windows NT 完全集成 利用了 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 数据库服务器 由于使用人数比较少 安装一个免费的 SQL Server 数据库完全可以应付需要 所以成本就不用考虑了 3 1 2 操作可行性 只要一台以上计算机连接在同一个局域网内 本系统就可以安装使用 所以操作上完 全不存在问题 3 1 3 技术可行性 本系统采用 Java 语言 是基于 CS 架构的 开发这个系统需要开发者对 socket 编程 和 Java Swing 这两方面的技术比较熟 由于本人长期从事于 java 语言编程 所以技术 方面是可行的 3 2 功能分析 3 2 1 注册 服务器收到用户的注册请求 便开始接受客户传递的信息 诸如客户的呢称 性别 籍贯 个人资料等 接受完毕后 便通过 JDBC 与后台数据库连接 然后向数据库添加记录 如果成功 便向客户返回其号码 客户收到服务器返回的信息后 便打开主登陆窗口 精品文档 6欢迎下载6欢迎下载6欢迎下载6欢迎下载 3 2 2 登录 在客户端 用户输入其号码和密码 然后建立与服务器的连接 告诉服务器我要登录 服务器收到后 开始通过 JDBC 读取数据库 然后与用户输入的信息比较 如果成功 便打 开主程序窗口 然后客户向服务器请求读取好友名单 服务器收到该请求 开始读取数据 库中的表 得到好友的号码后 再在 icq 表中读取好友资料 然后向客户端发送这些信息 客户收到后就在主窗口显示好友 并且建立几个矢量用以存储好友的呢称 号码 3 2 3 私聊 私聊就是两个聊天 客户端首先发送消息到服务器端 服务器端根据发送人信息和接 收者信息来转发 例如服务器接收到一个 A 发给 B 的消息先判断 B 是否已经在线 如果在 线就将信息发送过去 B 接收到 A 发来的信息 如果是未建立对话窗口 就询问是否建立 对话 否则就丢弃信息 精品文档 7欢迎下载7欢迎下载7欢迎下载7欢迎下载 第四章第四章概要设计概要设计 4 1 系统总体结构 4 2 数据库设计 1 用户表 UserInfo 属性 用户编号 uid 用户名 uname 密码 upass 登录ip 和端口号 ipport 状态 status 关系 一个用户可以有多个好友 一个用户可以有多条消息 1用户编号uid整数 2用户名uname字符型 精品文档 8欢迎下载8欢迎下载8欢迎下载8欢迎下载 3密码upass字符型 4登录ip和端口号ipport字符型 5状态status布尔型 2 好友表 Friends 属性 好友编号 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 布尔型 第五章第五章详细设计详细设计 精品文档 9欢迎下载9欢迎下载9欢迎下载9欢迎下载 5 1 登录模块设计 该模块的界面是仿照腾讯 QQ 的界面 界面与腾讯 QQ 相比虽然不是那么美观 但是基 本的功能也与其差不多了 在这个界面上用户的主要操作有用户输入用户名 密码 如果 还没有注册用户名的网友可以通过登录界面的用户注册 从而使用该程序 在登录该程序 之前需要开启服务器 当用户把用户名和密码输入好后点击登录按钮后 就开始与服务器 建立连接 服务器收到后开始通过 JDBC 的方式读取数据库的内容 然后与用户输入的用户 名和密码进行比较 如果用户名不存在或者用户的密码错误则登录失败 并且提示失败的 原因 如果有时候没有把服务器开启的话 则在登录失败后 会提示连接服务器超时 登 录成功后直接跳到程序的主窗口 开始向服务器请求读取好友分组和好友名单 精品文档 10欢迎下载10欢迎下载10欢迎下载10欢迎下载 5 2 注册模块设计 该模块是对于那些尚未注册的用户进行注册使用 在这个界面注册的用户需要填写的 有 昵称 密码 确认密码 密保问题 问题答案 当这些内容填写完成以后 就可以点 击提交注册按钮 点击这个按钮后就会创建一个与服务器端的连接 连接成功就会将填写 的信息发送到服务器端 如果服务器写入数据库成功 那么你便注册成功 成功后会返回 一个数字帐号给用户 这个时候你可以用你刚才注册成功的数字帐号和密码进行登录 精品文档 11欢迎下载11欢迎下载11欢迎下载11欢迎下载 5 3 消息格式化设计 5 4 界面设计 5 4 1 登录界面 运行程序后 弹出登录界面 等待用户操作 精品文档 12欢迎下载12欢迎下载12欢迎下载12欢迎下载 5 4 2 注册界面 在登录界面 点击 注册 弹出注册界面 按要求输入信息 5 4 3 聊天界面 精品文档 13欢迎下载13欢迎下载13欢迎下载13欢迎下载 结束语结束语 课程设计的第一天我不是拿到任务书就开始敲代码 一整天我都是在看书 上网络编程的知识 然后就是在网上找资料 找插件 本来最先开始我使用的 是 TCP 协议进行通信 但是后来感觉聊天系统不需要对数据的传输有绝对的正 确 况且是在通信状况非常好的局域网 所以我把协议改成了 UDP 设计的聊 天窗口需要输入对方 IP 如果对方也启动了程序就可以相互发送消息 如果不 输入 IP 则默认的是向本机发送 数据库的连接也遇上了点小麻烦 查询数据库 还比较顺利的 可是当要修改数据库时 试了多次都没添加进去 后来发现是 因为我写的数据库连接的类查询和插入必须用两个不同的实例 不然数据集会 在查询以后有所改变 界面的设计是用的我在网上找的 jigloo 插件 因为这个 插件功能比较完善 而且添加的也很方便 直接解压到 ECLIPSE 文件夹就行了 起初我以为有了这个插件就可以像 VB 那样拖一拖就能完成 可是后来发现它与 VB 的界面设计完全不一样 最终还是要自己动手修改代码 所以我采取的措施 是先把组件都设置好 然后自己添加事件 数据库的连接等等 好在组件设置 好以后的 JFRAME 类的代码写的非常清楚 一个 MAIN 函数新建窗体实例 然后 构造函数新建窗体 运用 initGUI 方法将组件都赋值 设置大小等 清楚简 洁 所以添加功能比较方便 在运用代码的时候 我学会了运用 JDK 查找 通 过输入的类或接口

温馨提示

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

评论

0/150

提交评论