1、 目 录 1.前言 . 3 2.需求分析 . 4 2.1 系统的功能需求 . 4 2.1.4 点歌 . 4 2.1.5 分组管理 . 4 2.1.6 个人信息管理 . 4 2.1.7 用户管理 . 4 2.1.8 视频通话 . 4 2.2 非功能需求: . 4 2.2.2 网络安全 . 4 2.3 用例分析 . 5 2.3.1 参与者 . 5 2.3.2 用例分 析 . 5 2.3.3 系统的用例图 . 5 3.总体设计 . 7 3.1TCP 服务器设置 . 7 3.2 分析类图 . 8 3.3 顺序图 . 9 3.2.1 用户私聊顺序图 . 9 3.2.2 用户传送文件序列图 . 10 3.
2、3 协作图 . 10 3.3.1 用户私聊协作图 . 10 3.3.2 用户传送文件协作图 . 11 4.详细设计 . 13 4.1 客户端设计 . 13 4.2 服务端设计 . 13 4.3 多线程设计 . 14 5.代码实现 . 15 5.1 服务端设计 . 15 2 5.2 客户端设计 . 17 5.3 多线程 . 21 5.3.1 服务端多线程 . 21 5.3.2 客户端多线程 . 23 6.运行与测试 . 24 6.1 用户登录界面 . 24 6.2 输入端口界面 . 24 6.3 服务器记录,在线的用户信息。 . 25 6.4 私聊 . 26 6.4.1 登录 . 26 6.4.
3、2 用户给指定的好友发送信息。(私聊) . 26 6.4.3 指定好友接受到好友信息。(私聊的信息) . 27 6.4.5 好友回复我的信息 . 27 6.5 群聊 . 28 6.5.1 发送群消息 . 28 6.5.2 好友响应并接受群聊信息 . 29 . 29 7. 小结 . 30 8.参考文献 . 31 3 1.前言 随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有 Netmeeting、腾讯 QQ、MSN-Messager 等等。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户
4、程序两个方面。前者通过 Socket 套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承 Thread 类来建立多线程。开发中利用了计算机网络编程的基本理论知识 ,如 TCP/IP 协议、客户端 /服务器端模式( Client/Server 模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息 的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用 Eclipse 为基本开发环境和
5、java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统 本文通过 java 的 Socket 实现了一个基于局域网和网络的聊天室的程序的开发 -基于 java 的C/S 模式网络聊天室的设计与实现。 C/S( Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利 用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是 Client/Server 形式的两层结构,由于现在的软件应用系统正在向分布式的 Web 应
6、用发展, Web 和 Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 关键词:聊天 客户端 信息 服务器端 Java C/S 聊天系统 4 2.需求分析 2.1 系统的功能需求 2.1.1 实现私聊(一对一): 在登陆的情况下选择你要聊天的好友,进行信息的传送,实现彼此的聊天,这也是本系统最基本的功能。 2.1.2 群聊(一对多): 可以实现一对多人的聊天。 2.1.3 大文件传输: 在能够聊天的基础上,实现通讯的多元化
7、,进行文件的传输。是通讯双方可以选择传送对方想获得的资料。 2.1.4 点歌 2.1.5 分组管理 2.1.6 个人信息管理 2.1.7 用户管理 2.1.8 视频通话 2.2 非功能需求: 2.2.1 界面友好: 界面易操作性,对经典的聊天程序的界面进行了学习和借鉴,模仿他们的界面和常用的操作。 2.2.2 网络安全 加密 解密 为了提高传输的安全性,进行加密操作。及时在网络上被别人了窃听消息,也不能得到原始信息,防止个人重要信息和隐私信息被盗。 5 2.3 用例分析 2.3.1 参与者 本系统显而易见的两个参与者:用户和管理员。 2.3.2 用例分析 从上面的需求里进行抽象和提取关键信息,
8、在确定系统边界的情况下,选择最基本的用例,然后对用例进行描述和细化。使其能完全的描述系统的功能性需求。 2.3.3 系统的用例图 6 通过对参与者和用例的分析,确定他们的关系(包括参与者和参与者的关系,参与者和用例的关系,用例之间的关系。)其中用例之间的关系是分析中的重点,如图私聊和群聊都有 socket 聊天的模块,所以可以确定的是包含关系。管理个人信息,包含了分组管理和用户信息管理,其中分组管理和用户信息管理,是个人信息管理的子集,所以应该是泛化关系。在文件传输的时候,可能会产生信息的丢失,导致信息不完整,接收方不能完整收到发送方的消息,所以导致发送方重发信息。所以这是扩展关系,因为只有在
9、传输文件失败的时候, 才能启用重传文件的模块。 用户所参与的模块首先应该登录,在登录系统后,可以私聊和群聊来交流信息。用户可以管理自己的信息进行修改自己的信息和管理自己的分组。为了丰富系统的功能我,我们还特意实现了点歌功,和传输文件吸引用户的眼光。 7 3.总体设计 3.1TCP 服务器设置 在 T C P / I P 协议族中,有两个互不相同的传输协议: T C P(传输控制协议)和 U D P(用户数据报协议)。 T C P 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合 适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输
10、层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面, U D P 则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。 Bind() Socket() Readfrom() 等待客户请求 处理服务请求 Sendto() Close() Socket() Bind() Sendto() Readfrom() Close() 服务请求 服务应答 服务器 客户机 服务器和客户机通讯流程 8 3.2 分析类图 (系统整齐的分析类图) 没有类是单独存在的, 通常和别的类协作,创造比
11、单独工作更大的语义。因此,除了捕获系统的词汇以外,还要将注意力集中到这些类是如何在一起工作的。使用类图来表达这种协作。确定你建模的机制。机制代表了部分你建模的系统的一些功能和行为,这些功能和行为是一组类、接口和其他事物相互作用的结果。对于每个机制,确定类、接口和其他的参与这个协作的协作。同时确定这些事物之间的关系。 用场景来预排这些事物,沿着这条路你将发现模型中忽略的部分和定义错误的部分。确定用这些事物的内容来填充它们。对于类,开始于获得一个责任(类的职责),然后,将它转化为具体 的属性和方法。 9 3.3 顺序图 3.2.1 用户私聊顺序图 用户在进入系统前首先要输入彼此通讯的端口号,由于客户机和服务器都是本机所以不需要寻找 IP 地址,然后输入用户名新建一个用户,由于没有保存历史记录功能,所以每次进入系统前都需要新建一个用户。然后输入用户名和密码,在确认用户和密码。登陆成功,选择在线可以聊天的好友,输入信息然后发送,达到和好友的交流。 10 3.2.2 用户传送文件序列图 3.3 协作图 3.3.1 用户私聊协作图 强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系 列的对象和在这些对象之间的联系以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。