基于java的局域网聊天系统-课程设计报告.doc

上传人:h**** 文档编号:126633 上传时间:2018-07-09 格式:DOC 页数:119 大小:2.17MB
下载 相关 举报
基于java的局域网聊天系统-课程设计报告.doc_第1页
第1页 / 共119页
基于java的局域网聊天系统-课程设计报告.doc_第2页
第2页 / 共119页
基于java的局域网聊天系统-课程设计报告.doc_第3页
第3页 / 共119页
基于java的局域网聊天系统-课程设计报告.doc_第4页
第4页 / 共119页
基于java的局域网聊天系统-课程设计报告.doc_第5页
第5页 / 共119页
点击查看更多>>
资源描述

1、 密级: NANCHANG UNIVERSITY 课程设计报告 CURRICULUM DESIGN REPORT ( 2014 2015 年) 题 目 基于 JAVA的局域网聊天系统开发 学 院: 信息工程学院 系 计算机科学与技术 专业班级: 计算机科学与技术 xxx 班 学生姓名: 学号: 指导教师: 职称: 起讫日期: 摘要 I 基于 JAVA 的局域网聊天系统开发 专 业:计算机科学与技术 学 号: xxxxxxxxxx 学生姓名: XXX 指导教师: LP 摘要 随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生 ,比如基于互联网的信息发布,通信,数据共享等等。局域网的发展也

2、同样迅速。很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET.因此基于局域网的即时通信工具,就这样应运而生了。本文利用JAVA 的 UDP 编程以及 SWING 图形界面 编程技术,在 WINDOWS 平台上实现了具有美观图形界面的局域网聊天软件 . 在本实现内将客户端和服务端综合在一个 程序之内,用多线程实现不同的并行任务。并模仿国内的 QQ 进行了人性化的界面设计,使用起来更加简单方便,并且功能十分合理、实用。 通过本局域网聊天软件可以实现一对一、一对多的聊天,可以实现不同用户不同的文字字体、风格、大小、颜色的发送和显示,提供发送表情、文件、好友间的抖

3、动提示以及聊天记录的管理等功能。 关 键 词 : 局域网聊天; JAVA 网 络 编 程 ; UDP ;多线程Abstract II LAN Chat System Development based on JAVA Abstract With the development of computer network technology, various kinds of applications based on network were born, such as the release of information, communication, data sharing based o

4、n the Internet and so on. The development of the LAN is also quick. Many government agencies, enterprises, schools, is the first in a unified network linked together, each with access to INTERNET. Thus Instant Communication Tools based on LAN were born. In this paper, by using JAVA UDP programming a

5、nd SWING graphical interface programming technology, we can get a LAN chat software with beautiful appearance on the WINDOWS platform. In the implementation, the client and the server were integrated within a program, implemented with multithreading. And imitating the domestic QQ interface humanizat

6、ion design, using more simple and convenient, and the function is very reasonable, practical. Through our LAN chat software can achieve one to one, one to many chat, send different users different text font, style, size, color and display, provide the send of expression, file, the shake among friend

7、s and chat records management and other functions. Keyword: LAN Chat ; JAVA network programming ; UDP; multi-thread目录 目录 摘要 .I Abstract . II 第一章 前言 . 1 第二章 系统可行性分析 . 2 2.1 成本可行性分析 . 2 2.2 技术可行性分析 . 2 第三章 需求分析 . 3 3.1 功能需求分析 . 3 3.2 性能需求分析 . 3 3.3 系统主要技术分析 . 3 3.2.1 JAVA DatagramSocket . 3 3.2.2 JAVA

8、 MulticastSocket . 4 3.2.3 JAVA Swing . 5 3.4 系统开发、 运行环境分析 . 5 第四章 系统概要设计 . 6 4.1 系统功能模块设计 . 6 4.2 系统数据流图 . 9 第五章 系统详细设计 . 10 5.1 详细设计概述 . 10 5.2 系统详细设计 . 10 5.2.1 登陆界面 . 10 5.2.2 用户主界面 . 14 5.2.3 聊天界面 . 16 5.2.4 辅助工具类 . 19 第六章 系统实现 . 21 6.1 总体工程架构的实现 . 21 6.2 具体功能实现 . 21 结论 . 24 参考文献 . 25 第一章 前言 1

9、第一章 前言 近年来,随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作 。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。然而,随着企业规模的扩大,业务量的增加,在局域网上运行的应用越来越多,如知识库、网络会议、数据库应用和数据的同步与备份等,这些应用对局域网的信息吞吐、处理能力的要求也越来越高。这些在企业内部原有局域网设计之初未曾考虑到的新情况的出现使得局域网不堪重负,容易发生信息阻塞,此时,局域网不但不能提高生产效率,反而成为企业发展的瓶颈。 为了解决上述矛盾,人们提出了许多方法

10、。提升网络带宽及增加服务器的吞吐能力是解决此矛盾的一种 方法。然而,从企业运行的成本方面考虑,无论是单纯地提升网络带宽或增加服务器的吞吐能力都不能从根本上解决局域网资源紧张的问题,对旧有局域网的大规模硬件改造反而会增加企业的负担。 我在本文中将讨论一种基于 DatagramSocket 和 MulticastSocket 的局域网通信工具的设计与实现方法。基于 DatagramSocket 和 MulticastSocket 的局域网通信软件可以为企业原有的局域网提供一种良好,安全,快速的通信机制。它的实现无需对企业原有的局域网硬件进行任何改动,具有实现成本低廉的优点,它的使用 能有效地降低局

11、域网通信负荷,提高局域网的使用效率,可以很好地解决企业内部局域网的各种通信需求。 基于 DatagramSocket 和 MulticastSocket 的局域网聊天工具是此类局域网通信软件的具体实例之一,它很好地诠释了 DatagramSocket和 MulticastSocket通信的原理,并且在企业内部通信、教学、讨论等应用中都具有一定的实用价值。它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。 基于 DatagramSocket 和 MulticastSocket 的局域网通信软件应用范围广阔,不但可以处理传统的通信需求,而且也能扩展以适应

12、新型的网络应用,如网络教育 , 数 据 影 音 传 输 等 , 拥 有 广 泛 的 应 用 前 景 。第二章 系统可行性分析 2 第二章 系统可行性分析 可行性分析是 基于 客观的、科学的 ,其在整个系统的设计与实现过程中有非常重要的意义,软件可行性分析的目的是用合适的代价解决足够的问题,其最终结果是对所设想的项目做出实施还是放弃。本局域网聊天系统将从成本和技术可行性进行分析。 2.1 成本可行性分析 因为本软件只做开发学习使用,所以暂且不考虑经济成本及盈利问题。 2.2 技术可行性分析 首先我已经搭建好开发所需要的软硬件平台,并进行了合理而完善的需求分析,做好了充分的前期准备工作,其次因为本

13、程序的平台将基于 WINDOWS,将要使用网络通信技术,而 WINDOWS 有完善成熟的网络通信接口,以及与 VC开发环境的严密契合能力,加之相类似的更大规模的 INTERNET 通信工具产品也已有例在先,所以这个程序的开发可行性在技术上是完全可行的。第三章 需求分析 3 第三章 需求分析 3.1 功能需求分析 (1)用户端之间的信息发送,本程序需要实现的最基本的功能; (2)当有用户下线后,应在所有在线的用户的“在线用户列表”中消掉下线人的信息记录; (3)在聊天是还应提供一些使用的辅助功能,在本局域网的聊天软件中,提供有字体设置、表情发送、文件发送、窗口抖动、消息记录管理等常用功能,能够满

14、足用户的基本要求。 3.2 性能需求分析 首先要求程序要完全可靠,可以应付种种由于系统问题产生的错误,比如初始网络失败,对方突然下线等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。 程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。 要求程序对所运 行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的联系,以免维护困难。 3.3 系

15、统主要技术分析 3.2.1 JAVA DatagramSocket 1.基本概念: a.DatagramPacket 与 DatagramSocket 位于 包中 b.DatagramPacket 表示存放数据的数据报, DatagramSocket 表示接受或发送数据报的套接字 c.由这两个类所有构成的网络链接是基于 UDP 协议,是一种不可靠的协议。 注:为了解决 UDP 协议的不可靠问题,在软件的聊天的文件传输功能部分自定义了一套接收数据的规则,使得通过 UDP 协议传输文件不会出错。 第三章 需求分析 4 2.使用方法: DatagramSocket():创建实例。通常用于客户端编程

16、,它并没有特定监听的端口,仅仅使用一个临时的。 DatagramSocket(int port):创建实例,并固定监听 Port 端口的报文。 DatagramSocket(int port, InetAddress localAddr):这是个非常有用的构建器,当一台机器拥有多于一个 IP 地址的时候,由它创建的实例仅仅接收来自 LocalAddr的报文 receive(DatagramPacket d):接收数据报文到 d 中。 receive 方法产生一个“阻塞”。 send(DatagramPacket d):发送报文 d 到目的地。 setSoTimeout(int timeout)

17、:设置超时时间,单位为毫秒。 close():关闭 DatagramSocket。在应用程序退出的时候,通常会主动释放资源,关闭 Socket,但是由于异常地退 出可能造成资源无法回收。所以,应该在程序完成时,主动使用此方法关闭 Socket,或在捕获到异常抛出后关闭 Sock。 3.2.2 JAVA MulticastSocket 多播数据报套接字类用于发送和接收 IP 多播包。 MulticastSocket 是一种 (UDP) DatagramSocket,它具有加入 Internet 上其他多播主机的“组”的附加功能。 多播组通过 D 类 IP 地址和标准 UDP 端口号指定。 D 类

18、 IP 地址在 224.0.0.0 和 239.255.255.255 的范围内( 包括两者)。地址 224.0.0.0 被保留,不应使用。 可 以 通 过 首 先 使 用 所 需 端 口 创 建 MulticastSocket ,然后调用 joinGroup(InetAddress groupAddr) 方法来加入多播组。将消息发送到多播组时,该主机和端口的所有预定接收者都将接收到消息(在数据包的生存时间范围内,请参阅下文)。套接字不必成为多播组的成员即可向其发送消息。 当套接字预定多播组 /端口时,它将接收由该组 /端口的其他主机发送的数据报,像该组和端口的所有其他成员一样。套接字通过 l

19、eaveGroup(InetAddress addr) 方法放弃组中的成员资格。多个 MulticastSocket 可以同时预定多播组和端口,并且都会接收到组数据报。 同时,不允许 applet 使用多播套接字。 第三章 需求分析 5 3.2.3 JAVA Swing Swing 是 一组 Java 程序 元件,它能够创建图象用户接口( GUI)元件, 如按钮和 滚动条 ,它们独立于特定操作系统的开窗口系统。 Swing 元件使用 Java Foundation Classes( JFC)。 互联网基础类 (IFC) 是网景公司最初为 Java 开发的图形库,第一次发布于1996 年 12

20、月 16 日。 在 1997 年 4 月 2 日,太阳微系统公司 和 网景公司宣称他们要将 IFC 和其他技术合并形成 Java 基础类。作为 IFC 最初提供组件的附加品, Swing 引进了一个机理 :在不改变大量的程序代码前提下允许程序中每个组件观感的变化。支持可更换观感技术的引入允许 Swing 组件在模拟原生组件外观的同时又保持了平台独立的优点。 Swing 是一个为 Java 设计的 GUI 工具包 。 Swing 是 JAVA API 的一部分。 Swing 包括了图形用户界面 (GUI) 器件 如 :文本框 ,按钮,分隔 窗格 和表。 SWING 提供许多比 AWT 更好的屏幕

21、显示元素。它们用纯 Java 写成,所以同 Java 本身一样可以跨平台运行,这一点不像 AWT。 它们是 JFC 的一部分。 它们支持可更换的观感和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意 平台上使用 JAVA 支持的任意观感。 轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。 3.4 系统开发、运行环境分析 操作系统: Microsoft Windows 7 JDK: jdk1.8.0_20-windows JDK(Java Development Kit)是 Sun Microsyst

22、ems 针对 Java 开发员的产品。自从 Java 推出以来, JDK 已经成为使用最广泛的 Java SDK。 JDK 是整个 Java 的核心,包括了 Java 运行环境, Java 工具和 Java 基础的类库。 开发 工具: Eclipse 4.4.0 或更高版本 Eclipse 企业级工作平台( Eclipse Java EE IDE for Web Developers,简称Eclipse) ,利用它我们可以在数据库和 JavaEE 的开发、发布 , 以及 应用程序 服务器的整合方面极大的提高工作效率。它是功能丰富的 JavaEE 集成开发环境 ,包括了完备的编码、调试、测试和发布功能,完整支持 HTML、 Struts、 JSF、 CSS、Javascript 、 SQL 、 Hibernate 。第四章 系统概要设计 6 第四章 系统概要设计 4.1 系统功能模块设计 从模拟用户的角度进行分析,对于一个局域网聊天系统,首先要确定其功能是什么,也就是用户想要系统做什么工作。 经过对系统的可行性分析、需求分析、技术分析后,结合调研的情况及用户的使用需求,确定了本系统的功能模块如下图所示。 图 4.1 系统功能模块图 功能模块 介绍: 1.用户登陆 用户登陆时使用,提供昵称的输入和用户头像的选择等功能。用户登陆界面共分为五部分如下图所示: 提示信息显示区域

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。