局域网内的多功能聊天室的设计与实现.doc_第1页
局域网内的多功能聊天室的设计与实现.doc_第2页
局域网内的多功能聊天室的设计与实现.doc_第3页
局域网内的多功能聊天室的设计与实现.doc_第4页
局域网内的多功能聊天室的设计与实现.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

JISHOU UNIVERSITY 专业课课程论文 题题 目 目 局域网内的多功能聊天室的设计与实现 作作 者 者 学学 号 号 所属学院 所属学院 信息科学与工程学院 专业年级 专业年级 总总 评评 分 分 完成时间 完成时间 吉首大学信息科学与工程学院吉首大学信息科学与工程学院 局域网内的多功能聊天室的设计与实现 局域网内的多功能聊天室的设计与实现局域网内的多功能聊天室的设计与实现 吉首大学信息科学与工程学院 湖南 吉首 416000 摘 要 在计算机技术飞速发展的今天 随着 Internet 的普及和发展 人们的生活和 工作也越来越离不开信息网络的支持 而聊天室是人们最常见 最直接的网上交流 的方式 本论文主要研究一个以网络交友为主 为广大用户提供一个借助网络进行 人际交往的信息平台 本文所设计的局域网聊天系统是基于开放的 WEB 服务器应用程序开发设计的 其主要特征是能动态完成信息的传递且具有高效的交互性 有效的处理客户请求且 具有更简单 更方便的数据库访问方法 易于维护和更新 这种技术程序由 JAVA HTML 数据库和脚本语言组合而成 主要功能模块包括 用户登录 注册部 分 编写和显示聊天记录部分 管理员管理聊天室的管理部分 聊天系统编写和显 示聊天记录部分界面友好 提供动作 表情 公聊或私聊等操作 管理部分可以删 除不守规矩的注册用户 踢出在线用户以及删除某些不合时宜的聊天记录等 根据 数据库需求分析 在 ACCESS 中定义 3 个表 用 user 表来存放注册用户信息 用 activetable 表来存放当前在线用户信息以及用 message 表来存放聊天记录 本系 统相比较其他信息交流平台具有开发方便 快捷 占用资源少 维护方便等优点 关键词 Java 数据库 脚本语言 聊天系 局域网内的多功能聊天室的设计与实现 LAN of multi function chat room design and Implementation Raotao College of Information Science and Engineering Jishou University Jishou Hunan 416000 Abstract The rapid development of computer technology today with the popularity and development of Internet people s work and life has become increasingly inseparable from the support of the information network and the chat room is one of the most common the most direct online communication mode In this thesis a network of friends for the vast number of users with a network of have the aid of interpersonal information platform The design of the LAN chat system is based on an open WEB server application development and design its main characteristic is to complete the information transmission dynamically with high interactivity effective customer request and has a more simple more convenient database accessing method easy maintenance and update The technical program by JAVA HTML database and script language and combination The main function modules include user login registration section write and display chat recording part the administrator manage the chat room management section Chat system to prepare and display chat interface friendly with action expression the public chat or operation management can remove the unruly registered user play online user and delete certain be inopportune or inappropriate chat records according to the database needs analysis defined in ACCESS 3 user table table for registered users of information using activetable table to store the current online user information and the use of message table to store the chat record This system is compared with other information exchange platform with the development of convenient fast less resource occupation easy maintenance and other advantages Key words JAVA data capture information analysis Winpcap Jpcap 局域网内的多功能聊天室的设计与实现 目 录 第一章引言 1 1 1 课题背景及意义 1 1 2 课题研究现状 1 1 3 研究内容 2 1 4 论文组织方式 2 第二章关键技术 3 2 1 JAVA 概述 3 2 2 套接字 3 2 2 1 Socket 简介 3 2 2 2 Socket 工作过程 4 2 3 TCP 三次握手 4 第三章需求分析 5 3 1 功能需求 5 3 2 性能要求 5 3 2 1 处理数据能力 5 3 2 2 时间特性 5 3 2 3 数据库需求 5 3 2 5 其他标准的约束 5 3 2 6 外部接口需求 6 3 2 7 通信接口 7 第四章概要设计 8 4 1 体系结构设计 8 4 1 1 复审数据流 控制流 8 4 1 2 软件体系结构 8 4 2 模块设计 9 4 2 1 用户扫描系统模块 9 4 2 2 在线交流系统模块 10 4 2 3 系统配置系统 11 第五章详细设计 14 5 1 用户登录模块 14 局域网内的多功能聊天室的设计与实现 5 2 用户列表模块 15 5 3 文本聊天模块 17 第六章测试及实现结果 21 6 1 测试环境 21 6 2 测试过程 21 6 2 1 用户登录及用户列表 21 6 2 2 文本聊天 22 6 2 3 文件传输 25 结束语 27 参考文献 28 局域网内的多功能聊天室的设计与实现 1 第一章第一章引言引言 1 1 课题背景及意义课题背景及意义 在网络越来越发达的今天 人们对网络的依赖越来越多 各种网络应用层 出不穷 网络编程越来越受大广大程序员的重视 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯 网络编程中有两个主要的问题 一个是如何准确的定位网络上一台或多台主机 另一个就是找到主机后如何可靠高效的进行数据传输 在 TCP IP 协议中 IP 层 主要负责网络主机的定位 数据传输的路由 由 IP 地址可以唯一地确定 Internet 上的一台主机 而 TCP 层则提供面向应用的可靠的或非可靠的数据传 输机制 这是网络编程的主要对象 一般不需要关心 IP 层是如何处理数据的 目前较为流行的网络编程模型是客户机 服务器 C S 结构 即通信双方一方 作为服务器等待客户提出请求并予以响应 客户则在需要服务时向服务器提出 申请 服务器一般作为守护进程始终运行 监听网络端口 一旦有客户请求 就会启动一个服务进程来响应该客户 同时自己继续监听服务端口 使后来的 客户也能及时得到服务 网络聊天是网络编程的典型应用之一 编写网络聊天软件对于学习网络编 程无疑有着很大的帮助 本小组编写本软件 旨在通过软件的编写与实现 来 提高对网络编程的理解和掌握 1 2 课题研究现状 网络数据捕获技术是获取信息的关键技术 它通过监听技术 过滤技术获 取原始数据 根据TCP IP分层理论进行层层拆解 提取相关协议中的信息 本 设计主要通过使用Java编写出了一款简单的软件对数据包信息进行捕获 捕获 出所需要的敏感信息 并且将捕获出来的信息保存起来 Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 即 JavaSE JavaEE JavaME 的总称 Java 技术具有卓越的通用性 高效 性 平台移植性和安全性 广泛应用于个人 PC 数据中心 游戏控制台 科学 超级计算机 移动电话和互联网 同时拥有全球最大的开发者专业社群 在全 球云计算和移动互联网的产业环境下 Java 更具备了显著优势和广阔前景 1 局域网内的多功能聊天室的设计与实现 2 1 3 研究内容 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯 网络编程中有两个主要的问题 一个是如何准确的定位网络上一台或多台主机 另一个就是找到主机后如何可靠高效的进行数据传输 在 TCP IP 协议中 IP 层 主要负责网络主机的定位 数据传输的路由 由 IP 地址可以唯一地确定 Internet 上的一台主机 而 TCP 层则提供面向应用的可靠的或非可靠的数据传 输机制 这是网络编程的主要对象 一般不需要关心 IP 层是如何处理数据的 目前较为流行的网络编程模型是客户机 服务器 C S 结构 即通信双方一方 作为服务器等待客户提出请求并予以响应 客户则在需要服务时向服务器提出 申请 服务器一般作为守护进程始终运行 监听网络端口 一旦有客户请求 就会启动一个服务进程来响应该客户 同时自己继续监听服务端口 使后来的 客户也能及时得到服务 网络聊天是网络编程的典型应用之一 编写网络聊天软件对于学习网络编 程无疑有着很大的帮助 本软件旨在为同一局域网用户间提供便利的局域网服 务 局域网用户可以通过此聊天软件在各终端相互发送聊天信息 同时可以快 速传送文件 方便局域网用户间的快速有效通信 1 4 论文组织方式 首先 本论文从目前网络的安全现状开始 详细研究了本课题的背景以及 意义 由于目前我国已经进入了网络时代 需要使用自己的网络聊天信息安全 系统来保护自己的网络聊天信息系统 尤其是对于秘密性的信息 必须将网络 安全和信息安全放在非常重要的地位 其次 在对本论文的背景有所了解的情况下 对本课题所必须的关键技术 进行了介绍 包括 java 的概述 套接字 三次握手等 最后 在对所必须得基础知识有所了解的情况下 按照各模块的功能 分 别详细介绍了各个功能的实现过程 局域网内的多功能聊天室的设计与实现 3 第二章第二章关键技术关键技术 2 1 java 概述 JAVA 语言有下面一些特点 简单 面向对象 分布式 解释执行 鲁棒 安全 体系结构中立 可移植 高性能 多线程以及动态性 丰富的类库 JAVA 提供了大量的类以满足网络化 多线程 面向对象系统 的需要 语言包提供的支持包括字符串处理 多线程处理 数学函数处理等 可以用它简单地实现 JAVA 程序的运行平台 实用程序包提供的支持包括哈希 表 堆栈 可变数组 时间和日期等 输入输出包用统一的 流 模型来实现 所有格式的 I O 包括文件系统 网络 输入低级网络包用于实现 Socket 编程 抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件 包括窗口 菜单 滚动条 对话框等 使得 JAVA 可以移植到不同平台的机器 网络包支 持 Internet 的 TCP IP 协议 提供了与 Internet 的接口 它支持 URL 连接 WWW 的即时访问 并且简化了用户 服务器模型的程序设计 JAVA 和 C C 对于变量声明 参数传递 操作符 流控制等使用了相同 的传统 使得熟悉 C C 的程序员能很方便地进行编程 同时 JAVA 为了 实现其简单 鲁棒 安全等特性 也摒弃了 C 和 C 中许多不合理的内容 2 2 套接字 2 2 1 Socket 简介 Socket 简称套接字 用于实现网络上客户和服务器之间的连接 也就是说 网络上两个或两个以上双工方式通信的进程之间总有一个连接 这个连接的端 点成为套接字 套接字是在比较低的层次上通信的 具体的说 一个服务器应用程序一般侦听一个特定的端口等待客户端的连 接请求 当一个连接请求到达时 客户端和服武器端建立一个通信连接 在连 接过程中 客户端被分配一个本地端口与一个 Socket 建立连接 客户端通过写 Socket 来通知服务器 以读 Socket 中的信息 类似的服务器也获得一个本地端 口 它需要一个新的端口号来侦听原始端口上的其他连接请求 服务器也通过 它的本地端口连接一个 Socket 通过读写和客户端通信 局域网内的多功能聊天室的设计与实现 4 2 2 2 Socket 工作过程 Socket 程序的工作过程 1 建立 Socket 连接 在通信开始之前由通信双方确认身份 建立一条专用 的虚拟连接道 2 数据通信 利用虚拟连接通道传送数据信息进行通信 3 关闭 通信结束时 再将所建的虚拟连接拆除 2 3 TCP 三次握手 第一次握手 原主机发送一个带有本次连接的序号的请求的一个数据帧 第二次握手 目的主机收到请求后 如果同意连接 则发回一个带有一个 本次连接序号和源端机连接序列号的确认 第三此握手 源端机收到含有两次初始序列号的应答后 再向目的主机发 送一个带有两次连接的序列号的确认 具体过程如下 图 2 1 三次握手协议 局域网内的多功能聊天室的设计与实现 5 第三章第三章需求分析需求分析 3 1 功能需求 做为一个局域网内的即时聊天程序 除了基本的聊天功能 文件传输也是 经常用到的功能 本软件需具有以下几个功能 1 用户登录 设立一个服务器 实现多用户即时通讯 用户在登录的同时需输入一些个 性化的信息 以便于各用户之前的识别 2 文本聊天 聊天室功能 即所谓的群聊 聊天内容所有人可见 保密聊天功能 即所 谓的私聊 聊天内容仅聊天双方可见 用户可对字体进行设置 3 文件转输 多线程 收发可同时进行 3 2 性能要求 3 2 1 处理数据能力 3 2 2 时间特性 响应时间 所有的发送操作响应时间一般不超过 1 秒 大量的信息发送 呈现应该在 5 秒内显示或者提示相关出错信息 更新处理时间 所有提交数据一般在 3 秒内相应 3 2 3 数据库需求 聊天记录较多 在需要时能即时存取 相关配置信息 需要时能即时读取 3 2 4 设计约束 3 2 5 其他标准的约束 局域网内的多功能聊天室的设计与实现 6 3 2 5 1 硬件约束 奔腾 4 处理器及以上 内存 256M 以 需求规格说明书 硬盘 50M 以上剩余空间 3 2 5 2 属性 3 2 5 2 1 可用性 3 2 5 2 2 可靠性 3 2 5 2 3 效率 3 2 5 2 4 安全性 3 2 5 2 5 可维护性 要求类的构建符合高内聚低耦合度的要求 3 2 6 外部接口需求 3 2 6 1 用户接口 用户界面 采用 Windows 的通用图形界面 对用户友好 且必须对鼠 标键盘提供支持 界面设计应遵循 1 尽量保持一致性 界面规范应遵循 Winows 软件界面的 规范 2 设计完整的对话过程 系统的每一次对话都应该有明确 的次序 开始 中间处理过程 结束 3 提供简单的错误处理机制 4 提供信息反馈 用多种信息提示用户当前软件运行状态 软件界面元件的功能 5 操作可逆 其动作可以是单个的操作 或者是一个相对 独立的操作序列 6 设计良好的联机帮助 3 2 6 2 软件接口 本节指定需使用的其他软件产品 如 数据管理系统 操 作系统 数学软件包 以及同其他应用系统之间的接口 如果 已有完整的接口文件 需在本节指明 说明内容包括 a 接口标识 b 功能描述 局域网内的多功能聊天室的设计与实现 7 c 数据流程和控制流程的方向 d 数据格式 容量 e 接口类型 如手动或自动 f 接口数据中断的优先级别 g 中断响应时间 h 异常处理等 对每一个所需的软件产品 需提供名称 缩写 规格说明 版本号 来源等内容 3 2 7 通信接口 本产品用户各终端和服务器属于一个局域网 网内采用 TCP IP 或 UDP 协 局域网内的多功能聊天室的设计与实现 8 第四章第四章概要设计概要设计 4 1 体系结构设计 4 1 1 复审数据流 控制流 图 4 1 4 1 2 软件体系结构 4 1 2 1 软件程序结构图 图 4 2 结构图 局域网内的多功能聊天室的设计与实现 9 4 1 2 2 系统配置子系统 图 4 3 系统配置子系统 4 1 2 3 消息记录子系统 图 4 4 消息记录子系统 4 2 模块设计 4 2 1 用户扫描系统模块 局域网内的多功能聊天室的设计与实现 10 图 4 5 用户扫描系统模块 图 4 6 用户扫描系统模块 4 2 2 在线交流系统模块 局域网内的多功能聊天室的设计与实现 11 图 4 7 在线交流系统模块 4 2 3 系统配置系统 4 2 3 1 上线提示模块 局域网内的多功能聊天室的设计与实现 12 图 4 8 上线提示模块 4 2 4 设置个人资料模块 局域网内的多功能聊天室的设计与实现 13 图 4 9 设置个人资料模块 4 2 5 系统屏蔽模块 图 4 10 系统屏蔽模块 局域网内的多功能聊天室的设计与实现 14 第五章第五章详细设计详细设计 5 1 用户登录模块 只列出程序界面以及与服务器端通讯部分的代码 图 5 1 用户登录模块 客户端 class Connect extends JFrame implements ActionListener ItemListener KeyListener public void link throws Exception 连接服务器 hostName hostText getText trim port Integer parseInt portText getText client new Socket hostName port 创建一个流套接字并将其连接到指定 IP 地址的指定端口 号 in new BufferedReader new InputStreamReader client getInputStream out new PrintWriter client getOutputStream out println nameText getText out flush 服务器端 public static void addConnection Socket s ClientProc cp if connections null connections new Vector 局域网内的多功能聊天室的设计与实现 15 connections addElement s if clients null clients new Vector clients addElement cp public static void deleteConnection Socket s ClientProc cp throws IOException if connections null connections removeElement s s close if clients null clients removeElement cp public static Vector getClients return clients 5 2 用户列表模块 只列出程序界面以及与服务器端通讯部分的代码 客户端 public void valueChanged ListSelectionEvent e 监听下拉列表的显示内容 if e getSource peopleList try String select String peopleList getSelectedValue if select null 确保选择非空 String userInfo select split String name userInfo 0 trim 提取名字 if name equals chf myName 不能添加自己 int count chf perponsComboBox getItemCount for int i 0 i count i chf perponsComboBox setSelectedIndex i 选择第 i 项 String strName String chf perponsComboBox 局域网内的多功能聊天室的设计与实现 16 getSelectedItem if name equals strName 如果已经在列表中 就复合框中选中 所以要确保没有重名 return 如果没有添加 就会执行下面语句 添加 chf perponsComboBox addItem name catch Exception ee System out println 发生错误 在 valueChanged ee public void actionPerformed ActionEvent e if e getSource refurbishButton 如果监听到要刷新列表 try listModel clear 清空列表 chf out println refurbish 发送刷新请求到服务器 chf out flush catch Exception ee 服务器端 public String getName return name public String getSex return sex 局域网内的多功能聊天室的设计与实现 17 public Socket getSocket return s private void updateList 更新用户列表 即发送当前在聊天室的用户到新来的用户列表中 Vector cs ChatServer getClients if cs null for Enumeration e cs elements e hasMoreElements ClientProc cp ClientProc e nextElement String exist name cp getName String exit sex cp getSex for int i 0 i cs size i String exist name ClientProc cs elementAt i getName String exit sex ClientProc cs elementAt i getSex System out println old out println old out flush 5 3 文本聊天模块 只列出程序界面以及与服务器端通讯部分的代码 局域网内的多功能聊天室的设计与实现 18 图 5 2 文本聊天模块 客户端 if e getSource sentButton 如果监听到发送信息按钮被点击 try mywords inMsgField getText if mywords trim length 0 不能发送空消息也不能都发空格 if withWho equals 所有人 outmsg mywords 发送到服务器 out println outmsg out flush 显示到我的频道里面 insert myMsgArea myName mywords myMsgArea setCaretPosition myMsgArea getText length else 对某个人交谈 outmsg withWho 局域网内的多功能聊天室的设计与实现 19 if privateTalkFlag outmsg withWho insert myMsgArea 您对 withWho 说 mywords myMsgArea setCaretPosition myMsgArea getText length else insert myMsgArea myName 对 withWho 说 mywords myMsgArea setCaretPosition myMsgArea getText length 发送到服务器 out println outmsg out flush catch Exception ee ee printStackTrace insert myMsgArea 与服务器连接中断 请重新登录 myMsgArea setCaretPosition myMsgArea getText length finally inMsgField setText 清空输入框 服务器端 发送信息给所有的人 public static void sendAll String s if connections null for Enumeration e connections elements Enumeration 过时的接口 可以用 for each 循环 e hasMoreElements 局域网内的多功能聊天室的设计与实现 20 try PrintWriter pw new PrintWriter Socket e nextElement getOutputStream pw println s pw flush catch IOException ex ex printStackTrace System out println s 发送信息给单独一个人 public static boolean sendOne String name String msg if clients null for Enumeration e clients elements e hasMoreElements ClientProc cp ClientProc e nextElement if cp getName equals name try PrintWriter pw new PrintWriter cp getSocket getOutputStream pw println msg pw flush return true 返回值为真 找到了这个人可以进行聊天 catch IOException ioe ioe printStackTrace return false 没有找到这个人 应该是此人已经退出了聊天室 局域网内的多功能聊天室的设计与实现 21 第六章第六章测试及实现测试及实现结果结果 6 1 测试环境 Windows XP Professional SP3 JDK 1 6 0 18 在局域网内一台主机上运行服务器端 其他机器运行客户端 登录时地址 填写为服务器所在主机的 IP 地址 6

温馨提示

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

评论

0/150

提交评论