简易聊天应用程序的设计与实现

  • 格式:doc
  • 大小:1.22 MB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java网络程序设计大作业分组报名表

目录

一、团队介绍及人员分工 (1)

1.1 团队介绍 (1)

1.2 人员分工 (1)

二、作品概述 (1)

2.1 创作背景 (1)

2.2 功能概要 (1)

2.3相关技术 (2)

2.4 作品可行性分析 (3)

三、需求分析 (3)

3.1 功能性需求 (3)

3.2 非功能性需求 (6)

四、作品实现 (6)

4.1服务端界面实现 (6)

4.2客户端界面实现 (8)

4.3登录实现 (10)

4.4 聊天功能实现 (11)

4.5 退出功能实现 (13)

五、作品设计、实现难点分析 (15)

5.1 难点分析 (15)

5.2 解决方案 (15)

5.3 测试结果 (16)

一、团队介绍及人员分工

1.1 团队介绍

吴益帆:有良好的统筹能力和领导力,能合理安排各组员工作。

张咪:踏实耐心,有良好的创新能力和策划能力。

沈丹丹:勤奋刻苦、有钻研精神,对待编程工作热情细心,孜孜不倦。

吴晓晓:对待工作细致专注,设计能力较强。

团队成员之间有较好的默契度及协作性。分工明确,各司其职,在共同的努力及相互的配合下,共同解决程序中出现的困难并尽可能的优化程序,最终完成整个项目。

1.2 人员分工

吴益帆:负责程序最后的整理,完成部分功能及错误的处理。

张咪:负责程序的编码部分及项目具体功能的实现。

沈丹丹:负责程序的界面部分,为改程序搜索解决的方案。

吴晓晓:负责程序的策划部分,项目的可行性分析及文档的编写工作。

二、作品概述

2.1 创作背景

网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。

在当今信息时代,越来越多的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力。

2.2 功能概要

运用java程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流

与文件系统等技术的综合应用。其界面主要采用了java.awt包,java.swing包等。程序实现了聊天室的基本功能,其中有:

(1) 服务器端功能描述:

启动服务器端:点击“开启”按钮,启动服务;

端口服务:输入服务器的某个端口号,开启服务器的这个端口;

显示在线用户信息:在右边的用户列表显示所有在线的用户信息;

显示用户聊天信息:在左边的聊天信息区域内显示所有用户所发的信息;

服务端关闭:点击“关闭’按钮,关闭服务。

(2) 客户端功能描述:

启动客户端:运行客户端程序,启动客户端;

选择服务器端口号:输入想要连接的服务器的端口号;

用户登录:填入用户名,点击“登录”按钮,连接相应服务器;

显示在线用户:在右边的用户列表中可以看到当前在线的用户;

发送/接受聊天消息:在下面的文本输入区域输入要发送的内容,点击发送可以在左边的聊天信息区域内显示自己以及其他用户所发的信息;

用户离线:点击“离线”按钮,与服务器断开连接;

客户端关闭:关闭客户端图形用户界面,关闭客户端。

2.3相关技术

(1) Java概述

JAVA语言有下面一些特点:简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。

丰富的类库JAVA提供了大量的类以满足网络化、多线程、面向对象系统的需要。语言包提供的支持包括字符串处理、多线程处理、数学函数处理等,可以用它简单地实现JAVA程序的运行平台。实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。输入输出包用统一的"流"模型来实现所有格式的I/O,包括文件系统、网络、输入低级网络包用于实现Socket编程。抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件, 包括窗口、菜单、滚动条、对话框等,使得JAVA可以移植到不同平台的机器。网络包支持Internet的TCP/IP 协议,提供了与Internet的接口。它支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。

(2) 套接字

Socket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。

具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个Socket建立连接,客户端通过写Socket 来通知服务器,以读Socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个Socket,通过读写和客户端通信。

Socket程序的工作过程:

1.建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接道。

2.数据通信:利用虚拟连接通道传送数据信息进行通信。

3.关闭:通信结束时,再将所建的虚拟连接拆除。

2.4 作品可行性分析

由于本软件知识一个聊天程序,程序只提供用户之间的聊天功能,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。

三、需求分析

3.1 功能性需求

本聊天室分为聊天室服务端和聊天室客户端,服务端与客户端之间通过套接字Socket(TCP)连接。在java中使用套接字相当简单,Java API为处理套接口的通信提供了一个类.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认IP地址为:localhost默认端口为8888。

(1) 聊天室服务端模块,包括端口服务、启动服务、关闭服务、显示在线用户、显示用户聊天信息,如图3.1所示;