ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:244.83KB ,
资源ID:13572211      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13572211.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程 课程设计 Socket聊天系统Word下载.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程 课程设计 Socket聊天系统Word下载.docx

1、C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。关键词:聊天客户端信息服务器端 Java

2、C/S聊天系统 2.需求分析2.1系统的功能需求,进行信息的传送,实现彼此的聊天,这也是本系统最基本的功能。,实现通讯的多元化,进行文件的传输。是通讯双方可以选择传送对方想获得的资料。2.2非功能需求:,对经典的聊天程序的界面进行了学习和借鉴,模仿他们的界面和常用的操作。加密解密为了提高传输的安全性,进行加密操作。及时在网络上被别人了窃听消息,也不能得到原始信息,防止个人重要信息和隐私信息被盗。2.3用例分析本系统显而易见的两个参与者:用户和管理员。从上面的需求里进行抽象和提取关键信息,在确定系统边界的情况下,选择最基本的用例,然后对用例进行描述和细化。使其能完全的描述系统的功能性需求。通过对

3、参与者和用例的分析,确定他们的关系(包括参与者和参与者的关系,参与者和用例的关系,用例之间的关系。)其中用例之间的关系是分析中的重点,如图私聊和群聊都有socket聊天的模块,所以可以确定的是包含关系。管理个人信息,包含了分组管理和用户信息管理,其中分组管理和用户信息管理,是个人信息管理的子集,所以应该是泛化关系。在文件传输的时候,可能会产生信息的丢失,导致信息不完整,接收方不能完整收到发送方的消息,所以导致发送方重发信息。所以这是扩展关系,因为只有在传输文件失败的时候,才能启用重传文件的模块。用户所参与的模块首先应该登录,在登录系统后,可以私聊和群聊来交流信息。用户可以管理自己的信息进行修改

4、自己的信息和管理自己的分组。为了丰富系统的功能我,我们还特意实现了点歌功,和传输文件吸引用户的眼光。 3.总体设计3.1TCP服务器设置在TCP/IP协议族中,有两个互不相同的传输协议:TP(传输控制协议)和UDP(用户数据报协议)。P为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,UP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发到另一台主机,但并不保证该数据报能到达另一端。任何

5、必需的可靠性必须由应用层来提供。 3.2分析类图 (系统整齐的分析类图)没有类是单独存在的,通常和别的类协作,创造比单独工作更大的语义。因此,除了捕获系统的词汇以外,还要将注意力集中到这些类是如何在一起工作的。使用类图来表达这种协作。确定你建模的机制。机制代表了部分你建模的系统的一些功能和行为,这些功能和行为是一组类、接口和其他事物相互作用的结果。对于每个机制,确定类、接口和其他的参与这个协作的协作。同时确定这些事物之间的关系。 用场景来预排这些事物,沿着这条路你将发现模型中忽略的部分和定义错误的部分。确定用这些事物的内容来填充它们。对于类,开始于获得一个责任(类的职责),然后,将它转化为具体

6、的属性和方法。3.3顺序图用户在进入系统前首先要输入彼此通讯的端口号,由于客户机和服务器都是本机所以不需要寻找IP地址,然后输入用户名新建一个用户,由于没有保存历史记录功能,所以每次进入系统前都需要新建一个用户。然后输入用户名和密码,在确认用户和密码。登陆成功,选择在线可以聊天的好友,输入信息然后发送,达到和好友的交流。3.3协作图 强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例。用户在登录系统后,进入登陆界面,在界面的好友框里,选择要传送文件的好友,点击传送文件

7、的按钮,会弹出选择文件的对话框,在对话框里查找你所在的文件系统中你要传送的文件。然后点击传送。4.详细设计4.1客户端设计一个网络聊天室的运行,首先是要有一个完整稳定的服务器端,并且拥有很多个服务器端。客服端要具有实现用户注册和用户登陆,在登陆成功后,要显示出公聊界面,实现聊天功能并且能够发送表情和保存聊天内容和显示聊天记录等功能,在新用户上线和用户下线时要更新每个客户端在线用户列表名,并且可以和在线的用户实现一对一的私聊功能。 在服务器端可以实现不断的监听客服的连接,并且根据客户端发送过来的不同信息如注册信息,登录信息,公聊信息,私聊信息,退出信息等,服务器端要做出不同的响应,并且要实现数据

8、库的操作,如根据用户注册的信息保存数据库中,根据登录时发送来的用户名和密码检测是否合法用户等。经为每一个连接着的客户端建立了一个线程,这个线程好比一根电话线一直等待客户端说话,而信息发送中心就相当于一个总台,一旦有人打电话进来,就通过电话线把信息传完成了服务器端的第一个的任务,那么第二个任务也就不难解决了。上面已送到总台,再由总台根据需要将这个信息发送给接收群。这样就意味着,服务器每接受一条信息,就要调用一次信息发送中心的方法,并将这条信息发送到所有客户端(或者特定的某个某几个客户端)。电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而

9、程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。侦听服务器发送的连接请求,有请求就接收发来的信息,并通过短信猫发出去单的说,服务器端是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据等等.客户端可以是任意的一台电脑,只要它和服务器端存在连接,并且得到了服务器端的授权,就可以使用服务器端的服务.象现在就可以理解为XX的网站是服务器端,我们现在使用的电脑就是客户端.我们可以使用它的服务.4.2服务端设计由于客户端需要同时能够接收信息以及发送信息,所以也必须利用多个线程来实现。主线程用于接收用户输入的内容并将之发送到服务器端,而一个后台

10、线程将一直接收来自服务器端的信息,并将之返回给客户端的用户。客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,这样在客户机和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。不过客户端及伺服端的关系不见得一定建立在两台分开的机器上,同一台机器中

11、也有这种主从关系的存在。提供服务的伺服端及接受服务的客户端也有可能都在同一台机器上,例如我们在提供网页的服务器上执行浏览器浏览本机所提供的网页,这样在同一台机器上就同时扮演伺服端及客户端。4.3多线程设计 为了能实现一对多的通话聊天也就是说间接的多对多的聊天的功能,所以必须在客户端配置和服务端配置的时候。实现多线程的功能。实现程序的并发。以及可以减少创建进程是CPU的资源浪费。和服务区负荷太重。 多线程在客户端可以实现,用户进行群聊,以及接受多个好友的响应信息。在服务端可以减少创建进程的开销。在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”

12、。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。使用线程可以把占据时间长的程序中的任务放到后台去处理用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。但是如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换。更多的线程需要更多的内存空间。线程可能会给程序带来更多“bug”,因此要小心使

13、用。线程的中止需要考虑其对程序运行的影响。通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生。5.代码实现5.1服务端设计 public class ServerFrame extends JFrame private JPanel contentPane; private JTextField txtPort; private JLabel lblState; private JTextArea txtAllUsers; / 集合:用来保存所有登录的用户 private List allLoginUser = null; public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try ServerFrame frame = new ServerFrame(); / 禁止用户更改窗体的大小 f

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1