软件工程课程设计Socket聊天系统_第1页
软件工程课程设计Socket聊天系统_第2页
软件工程课程设计Socket聊天系统_第3页
软件工程课程设计Socket聊天系统_第4页
软件工程课程设计Socket聊天系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

目 录1.前言 .42.需求分析 .52.1 系统的功能需求 .52.1.4 点歌 .52.1.5 分组管理 .52.1.6 个人信息管理 .52.1.7 用户管理 .52.1.8 视频通话 .52.2 非功能需求: .52.2.2 网络安全 .52.3 用例分析 .62.3.1 参与者 .62.3.2 用例分析 .62.3.3 系统的用例图 .63.总体设计 .83.1TCP 服务器设置 .83.2 分析类图 .93.3 顺序图 .103.2.1 用户私聊顺序图 .103.2.2 用户传送文件序列图 .113.3 协作图 .113.3.1 用户私聊协作图 .113.3.2 用户传送文件协作图 .124.详细设计 .144.1 客户端设计 .144.2 服务端设计 .144.3 多线程设计 .155.代码实现 .165.1 服务端设计 .1625.2 客户端设计 .185.3 多线程 .225.3.1 服务端多线程 .225.3.2 客户端多线程 .246.运行与测试 .256.1 用户登录界面 .256.2 输入端口界面 .256.3 服务器记录,在线的用户信息。 .266.4 私聊 .266.4.1 登录 .266.4.2 用户给指定的好友发送信息。 (私聊) .276.4.3 指定好友接受到好友信息。 (私聊的信息) .276.4.5 好友回复我的信息 .286.5 群聊 .286.5.1 发送群消息 .286.5.2 好友响应并接受群聊信息 .29.297. 小结 .308.参考文献 .3131.前言随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有 Netmeeting、腾讯QQ、MSN-Messager 等等。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过 Socket 套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承 Thread 类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如 TCP/IP 协议、客户端/服务器端模式(Client/Server 模式) 、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用 Eclipse 为基本开发环境和 java 语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统 本文通过 java 的 Socket 实现了一个基于局域网和网络的聊天室的程序的开发-基于 java 的C/S 模式网络聊天室的设计与实现。C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是 Client/Server 形式的两层结构,由于现在的软件应用系统正在向分布式的 Web 应用发展,Web 和 Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。关键词:聊天 客户端 信息 服务器端 Java C/S 聊天系统 42.需求分析2.1 系统的功能需求2.1.1 实现私聊(一对一):在登陆的情况下选择你要聊天的好友,进行信息的传送,实现彼此的聊天,这也是本系统最基本的功能。2.1.2 群聊(一对多): 可以实现一对多人的聊天。2.1.3 大文件传输: 在能够聊天的基础上,实现通讯的多元化,进行文件的传输。是通讯双方可以选择传送对方想获得的资料。2.1.4 点歌2.1.5 分组管理2.1.6 个人信息管理2.1.7 用户管理2.1.8 视频通话2.2 非功能需求:2.2.1 界面友好: 界面易操作性,对经典的聊天程序的界面进行了学习和借鉴,模仿他们的界面和常用的操作。2.2.2 网络安全加密解密为了提高传输的安全性,进行加密操作。及时在网络上被别人了窃听消息,也不能得到原始信息,防止个人重要信息和隐私信息被盗。52.3 用例分析2.3.1 参与者本系统显而易见的两个参与者:用户和管理员。2.3.2 用例分析从上面的需求里进行抽象和提取关键信息,在确定系统边界的情况下,选择最基本的用例,然后对用例进行描述和细化。使其能完全的描述系统的功能性需求。2.3.3 系统的用例图6通过对参与者和用例的分析,确定他们的关系(包括参与者和参与者的关系,参与者和用例的关系,用例之间的关系。 )其中用例之间的关系是分析中的重点,如图私聊和群聊都有 socket 聊天的模块,所以可以确定的是包含关系。管理个人信息,包含了分组管理和用户信息管理,其中分组管理和用户信息管理,是个人信息管理的子集,所以应该是泛化关系。在文件传输的时候,可能会产生信息的丢失,导致信息不完整,接收方不能完整收到发送方的消息,所以导致发送方重发信息。所以这是扩展关系,因为只有在传输文件失败的时候,才能启用重传文件的模块。用户所参与的模块首先应该登录,在登录系统后,可以私聊和群聊来交流信息。用户可以管理自己的信息进行修改自己的信息和管理自己的分组。为了丰富系统的功能我,我们还特意实现了点歌功,和传输文件吸引用户的眼光。73.总体设计3.1TCP 服务器设置在 T C P / I P 协议族中,有两个互不相同的传输协议: T C P(传输控制协议)和 U D P(用户数据报协议) 。T C P 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,U D P 则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。Bind()Socket()Readfrom()等待客户请求处理服务请求Sendto()Close()Socket()Bind()Sendto()Readfrom()Close()服务请求服务应答服务器客户机服务器和客户机通讯流程83.2 分析类图(系统整齐的分析类图)没有类是单独存在的,通常和别的类协作,创造比单独工作更大的语义。因此,除了捕获系统的词汇以外,还要将注意力集中到这些类是如何在一起工作的。使用类图来表达这种协作。确定你建模的机制。机制代表了部分你建模的系统的一些功能和行为,这些功能和行为是一组类、接口和其他事物相互作用的结果。对于每个机制,确定类、接口和其他的参与这个协作的协作。同时确定这些事物之间的关系。用场景来预排这些事物,沿着这条路你将发现模型中忽略的部分和定义错误的部分。确定用这些事物的内容来填充它们。对于类,开始于获得一个责任(类的职责) ,然后,将它转化为具体的属性和方法。93.3 顺序图3.2.1 用户私聊顺序图用户在进入系统前首先要输入彼此通讯的端口号,由于客户机和服务器都是本机所以不需要寻找 IP 地址,然后输入用户名新建一个用户,由于没有保存历史记录功能,所以每次进入系统前都需要新建一个用户。然后输入用户名和密码,在确

温馨提示

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

评论

0/150

提交评论