下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 简易网络聊天软件-毕业设计

简易网络聊天软件-毕业设计.doc

简易网络聊天软件-毕业设计

lu光瑞
2017-09-27 0人阅读 举报 0 0 暂无简介

简介:本文档为《简易网络聊天软件-毕业设计doc》,可适用于IT/计算机领域

简易网络聊天软件毕业设计毕业设计设计题目简易网络聊天软件随着近年来计算机技术的快速发展特别是计算机网络的发展越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格开发出更方便、更实用的网络工具。各种在线服务系统更是深刻的影响了人们的联系方式使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式已经不能满足现代生活的需要。既然Internet是当前最热门的技术作为网络信息交流最直接的手段之一开发聊天室就显得特别重要。本文以开发基于Java语言的网络聊天室为实践基础详细介绍了聊天室的功能设计和具体的界面逻辑结构包括聊天室的服务器管理系统还讨论了群聊私聊等功能的实现。本次设计主要以Socket作为通讯的依赖和以Object作为通讯的载体。除此之外通讯根据一定的通讯协议的。界面方面主要采用Swing技术实现。为了提高效率的需要采用了线程去解决。网络聊天室Java群聊私聊Socket线程目录绪论系统概述系统开发的意义可行性分析经济可行性技术可行性所开发的语言简介本文技术介绍Swing编程线程编程CS结构工作模式简介输入输出流TCPIP协议系统总体分析与设计系统需求分析系统服务端的功能分析系统客户端的功能分析系统数据存储方式的分析系统总体设计系统总体用例图系统总体框架图系统服务端与客户端的工作原理系统服务端与客户端的通讯协议系统数据对象的设计系统详细设计与实现开发平台系统的详细设计与实现公共模块的工具类的详细设计与实现数据模型层(Bean)的详细设计与实现数据操作层(Dao)的详细设计与实现业务逻辑与界面的实现层的详细设计与实现系统关键技术的分析与设计服务端与客户端的连接服务线程的的设计协议的分析与定义系统展示与功能测试服务端的功能展示客户端的功能展示日志文件的查看测试结果总结参考文献英文摘要致谢仲恺农业技术学院毕业论文(设计)成绩评定表绪论系统概述Internet是目前世界上最大的计算机互联网络它遍布全球将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的易于被人们所接受的信息检索手段WorldWideWeb(简称WWW)发展十分迅速成为目前世界上最大的信息资源宝库。据估计目前Internet上已有上百万个Web站点其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域其用户群十分庞大因此建设一个好的Web站点对于一个机构的发展十分重要。由于近年来计算机技术的快速发展特别是计算机网络的发展越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格开发出更方便、更实用的网络工具。各种在线服务系统更是深刻的影响了人们的联系方式使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式已经不能满足现代生活的需要。既然Internet是当前最热门的技术作为网络信息交流最直接的手段之一开发聊天室就显得特别重要。本文以开发基于Java语言的网络聊天室为实践基础详细介绍了聊天室的功能设计和具体的页面逻辑结构包括聊天室的服务器管理系统还讨论了群聊、私聊等功能的实现。聊天室是一个通过国际互联信息网络进行多人通讯的系统。在这个信息极其发达的时代目前我们可以用来进行信息交流的方法非常多比如电报、电话、电子邮件等通讯手段这些或者不方便或者有局限性或者有费用的问题比如电话就是属于费用比较高的一种方式而且一般情况下不能进行多人会谈那么一个需要几个人一起讨论的会议就不能举行一般情况下都需要花费大量的人力物力把这几个人聚集到同一地点才能进行讨论。非但费时费力费钱而且效果也不一定很好。电子邮件则不是一种及时联系的手段需要一定时间才能到达只能作为一种辅助交流的手段。但是聊天室就能很好的解决这个问题我们不需要聚集在同一地点各自在不同的地点就可以在聊天室中发言大家互相讨论。它费用低廉信息交流速度快只有这样才能在这个涌动的社会中加强联系创造出更多的财富。本课题开发了一个聊天室它拥有聊天室的基本功能系统开发的意义本局域网聊天软件适合于同一局域网中的不同主机间进行通信。一些要求保密的工作办公室并不连接互联网因此诸如QQ之类的聊天软件不能使用此时就需要有一款局域网聊天软件让同一办公室的办公人员能实现通信能够进行聊天。本软件分为服务器端和客户端两种不同的状态。同时使用局域网聊天软件的用户其一选择服务器端另一用户选择客户端客户端通过连接服务器端的IP地址连接到服务器主机一旦连接成功便可彼此之间发送信息进行聊天。可行性分析经济可行性该简易局域网聊天程序作为本人的毕业设计硬件设备只需一台连接到互联网的计算机以便我在开发过程中所遇到问题可以上网搜查资料还有就是需要阅读一些关于Java、Socket、TCPIP开发方面的书籍来参考。技术可行性该简易局域网聊天程序是一个可视化界面操作的主要是文件系统对数据进行存储、更新和维护。使用MyEclipse为开发平台它的Swing编程可以实现系统的可视化同时它为我们提供了许多接口技术。开发可行性该系统开发语言为Java开发平台为WindowXP下的MyEclipse编程环境后台数据支持采用文件系统。所开发的语言简介Java是由SunMicrosystems公司于年月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此Java被广泛接受并推动了Web的迅速发展常用的浏览器现在均支持Javaapplet。另一方面Java技术也不断更新。Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次就可以在各种系统中运行。Java应用编程接口已经从x版发展到版。目前常用的Java平台基于Java最近版本为Java。Java分为三个体系JavaSE(JavaPlatformStandardEdition)JavaEE(JavaPlatform,EnterpriseEdition)JavaME(JavaPlatformMicroEdition)。本文技术介绍本系统是采用Java中Swing为客户机服务器(CS结构)应用系统程序的前端开发的工具,基于Java的多线程开发采用输入输出流操作文件系统保存数据信息,下面简单介绍一下主要应用到的相关技术。Swing编程Swing是目前Java中不可缺少的窗口工具组是用户建立图形化用户界面(GUI)程序的强大工具。JavaSwing组件自动产生各种事件来响应用户行为。如当用户点击按钮或选择菜单项目时Swing组件会产生一个ActionEvent。Swing组件会产生许多事件如ActionEvents,ChangeEvents,ItemEvents等来响应用户的鼠标点击行为列表框中值的改变计时器的开始计时等行为。在JavaSwing编程中通过注册监听器我们可以监听事件源产生的事件从而在事件处理程序中处理我们所需要处理的用户行为。JavaSwing中处理各组件事件的一般步骤是:().新建一个组件(如JButton)。().将该组件添加到相应的面板(如JPanel)。().注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。().定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件第二种方法是使用多个内部类来响应不同组件产生的各种事件其具体实现又分两种方式一种是匿名内部类一种是一般内部类。线程编程在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此无论是通过Thread类还是Runnable接口建立线程都必须建立Thread类或它的子类的实例。Java中线程的一些主要方法:().run()和start()把需要并行处理的代码放在run()方法中start()方法启动线程将自动调用run()方法。().sleep()线程(即调用该方法的线程)暂停执行一段时间让其他线程有机会继续执行但它并不释放对象锁。().join()方法使调用该方法的线程在此之前执行完毕也就是等待调用该方法的线程执行完毕后再往下继续执行。().wait()和notify()、notifyAll()wait()方法使当前线程暂停执行并释放对象锁标志让其他线程可以进入Synchronized数据块当前线程被放入对象等待池中。当调用notify()方法后将从对象的等待池中移走一个任意的线程并放到锁标志等待池中只有锁标志等待池中的线程能够获取锁标志如果锁标志等待池中没有线程则notify()不起作用。notifyAll()则从对象等待池中移走所有等待那个对象的线程并放到锁标志等待池中。(注意这三个方法都是javalangOjbect的方法!)“Synchronized”这个关键字用于保护共享数据当然前提是要分清哪些数据是共享数据。每个对象都有一个锁标志当一个线程访问该对象时被Synchronized修饰的数据将被“上锁”阻止其他线程访问。当前线程访问完这部分数据后释放锁标志其他线程就可以访问了。CS结构工作模式简介CS结构的基本原则是将计算机运用任务分解成多个子任务由多台计算机分工完成即“功能分布”原则。客户端完成数据处理、数据表示、用户接口等功能服务器端完成DBMS的核心功能。().CS主要技术特征按功能划分。服务器是服务的提供者客户机是消费者共享资源。一个服务器可以在同一时刻为多个客户机提供服务不对称协议。在客户机与服务器之间存在一种多对一的主从关系定位透明性基于消息的交换可扩展行。CS可以水平或垂直地扩展。().本文CS结构采用简单的两层CS结构如下图:CS输入输出流Java语言的输入输出功能是十分强大而灵活的。在Java类库中IO部分的内容是很庞大的因为它涉及的领域很广泛:标准输入输出文件的操作网络上的数据流字符串流对象流zip文件流Java中主要的一些输入输出流有().InputStream字节输入流().OutputStream字节输出流().ObjectOutputStream专门写对象的流().ObjectIntputStream读取对象流格式().Reader字符输入流().Writer字符输出流TCPIP协议TCPIP(TransmissionControlProtocolInternetProtocol的简写中文译名为传输控制协议互联网络协议)协议是Internet最基本的协议简单地说就是由底层的IP协议和TCP协议组成的。网际协议(IP)负责将消息从一个主机传送到另一个主机。为了安全消息在传送的过程中被分割成一个个的小包。传输控制协议(TCP)负责收集这些信息包并将其按适当的次序放好传送在接收端收到后再将其正确地还原。传输协议保证了数据包在传送中准确无误。系统总体分析与设计简易网络聊天软件主要有服务器与客户端两个子系统组成的系统服务器主要提供了服务管理配置管理用户管理在线用户管理日志管理等功能而客户端就有注册用户登录退出添加好友删除好友查找用户公共聊天私聊等功能。系统需求分析系统服务端的功能分析服务端应该具有服务管理配置管理用户管理在线用户管理日志管理等功能以下对这些功能做一些概要的分析().服务管理:具有开启服务器关闭服务器显示系统信息记录系统日志等功能().配置管理:具有读取配置文件更新配置文件设置配置恢复默认配置等功能().用户管理:具有用户添加用户查询用户修改用户删除等功能().在线用户管理:具有在线用户查询广播系统消息等功能().日志管理:具有显示用户操作信息记录用户日志查看用户日志等功能系统客户端的功能分析客户端应该具有用户注册用户登录用户退出等功能以下对这些功能做一些概要的分析().用户注册:用户填写个人资料后就可以尝试向服务器发送注册新用户的请求如果注册成功服务器就返回该新用户的信息否则就返回失败原因。().用户登录:用户输入用户JQ密码后就可以尝试登录如果登录成功就可以进行聊天添加好友删除好友查找用户等操作了。().用户退出:用户登录完成操作后就可以选择退出登录了。系统数据存储方式的分析考虑到系统的灵活性本系统设计了两个数据存储方式一种是数据库存储方式一种是文件存储方式。后来考虑到系统移植方便就选择了文件存储方式先实现因为这样移植系统不需要安装数据库只需要利用文件系统就可以了数据库存储方式就当作是以后的一种扩展吧。系统总体设计系统总体用例图添加好友注册<<uses>><<uses>>删除好友登录<<uses>><<uses>>聊天退出用户查看聊天记录服务管理配置管理用户管理在线用户管理管理员日志管理系统总体框架图系统服务端与客户端的工作原理服务端Socket()建立流式套接字返回套接字号sBind()把套接字s与本地地址相连接客户端Listen()通知TCPIP服务器Socket()建立流式套接准备好接受连接字返回套接字号sAccept()接受连接得到第二Connect()把套接字s与个套接字ns远程主机相连Receive()与Send()在ns上读Receive()与Send()在ns写数据直到结束上读写数据Closet()关闭套接字nsClose()关闭套接字s结束TCPIP对话Closet()关闭最初套接字s系统服务端与客户端的通讯协议服务端与客户端的通讯是通过ObjectOutputStream(对象输出流)ObjectInputStream(对象输入流)两个流过实现的。所以定义了以下一个JQMessage类来作为传输的数据载体。JQMessage的定义具体如图:JQMessage虽然有了JQMessage这个类作为传输的载体但是这是还不够的我们必须要有统一的协议于是就定义了以下的一个传输协议(如图):系统数据对象的设计().好友类(FriendUser):用户登录后发送好友的到相应的用户到客户端属性名类型说明jqunmInteger好友的jq号码nickNameString好友的用户昵称signatureString好友的个性签名photoInteger好友的图片号stateInteger好友的状态().日志类(Log):用来保存用户操作信息的属性名类型说明idInteger日志idtypeInteger日记类型useridInteger用户idnicknameString用户昵称whatString什么事ipString用户的IP地址timeDate该事发生的时间().用户登录类(LoginUser):用来表示用户登录时传输的数据对象属性名类型说明jqnumInteger登录的jq号码typeString登录的密码stateInteger登录的状态().头像类(Portrait):用来表示用户的头像号码与路径属性名类型说明numInteger头像的号码pathString头像的路径().公共聊天信息类(PublicRecord):用来表示用户的公共聊天时的相关信息属性名类型说明fromUserFriendUser从哪个好友中发送sendTimeDate发送的时间readTimeDate收到的时间contentString聊天信息的内容().好友私聊信息类(Record):用来表示用户的好友之间私聊时的相关信息属性名类型说明idInteger聊天信息的idfromidInteger发送者的jq号码toidInteger接收者的jq号码sendTimeDate发送的时间readTimeDate收到的时间idReadBoolean是否己经收到contentString聊天信息的内容pathNameString保存聊天信息的路径isSendBoolean是否是发送的信息().注册用户类(RegUser):用来表示用户注册时的相关信息属性名类型说明jqnumInteger注册的jq号码realnameString用户的真实名字nicknameString用户的昵称passwordString用户的密码().用户类(User):用来表示用户保存的相关信息属性名类型说明idInteger用户的idjqunmInteger用户的jq号码realnameString用户的真实名字nicknameString用户的昵称sexInteger用户的性别ageInteger用户的年龄passwordString用户的密码signatureString用户的个性签名emailString用户的eamilphotoInteger用户的相片号码stateInteger用户的状态listFriendVector<Integer>用户的好友jq号码集合registerTimeDate用户的注册时间().用户性别类(UserSex):用来表示用户性别的相关信息属性名类型说明typeInteger类型为代表男代表女nameString“男”或者“女”().用户状态类(UserState):用来表示用户状态的相关信息属性名类型说明stateInt状态的数字表示sNameString状态的名字jqnumInteger用户的jq号码().传输信息类(JQMessage):客户端与服务端的传输消息类属性名类型说明typeInteger操作的类型objObject传输的具体操作对象数据系统详细设计与实现开发平台)硬件平台,CPU:PGHz,内存:MB以上,彩显:英寸高分辨率(分辨率x或以上),显卡:M以上的显卡,硬盘:GIDE以上转)软件平台,操作系统:WindowsXP,开发环境:JDK,开发工具:MyEclipse系统的详细设计与实现本系统的实现主要采用了三层模式去开发:数据模型层(Bean)数据操作层(Dao)业务逻辑与界面的实现层。除此以处,还有一个公共的工具类模块。公共模块的工具类的详细设计与实现公共模块的工具类都是一些静态的方法它们的作用就是帮助其他的类能够更好地实现功能。工具类有以下的几个如图工具类的说明:().DateDeal类:日期处理类。主要有几个日期处理的方法根据不同的需求得到不同格式的日期格式。类名称DateDeal类描述日期处理类。包描述Tools函数描述publicstaticStringgetCurrentDate()将当前日期返回"yyyyMMdd"的字符串表现形式。publicstaticStringgetCurrentTime()将当前日期返回"yyyy年MM月dd日HH:mm:ss"的字符串表现形式。publicstaticStringgetDate(Datedate)将Date的日期返回"yyyyMMddHH:mm:ss"的字符串表现形式。publicstaticStringgetDate(Datedate)根据当前日期返回不同形式的字符串形式。如果与当前时间所在年月日相同则返回"HH:mm:ss"形式否则返回"yyyyMMddHH:mm:ss"。().FileDeal类:文件处理类。主要有根据后缀名与文件判断该文件是否属于某种文件。类名称FileDeal类描述文件信息处理类包描述ToolspublicstaticbooleanisKindOFType(File根据文件的后缀名判断文件是否属于某file,StringsuffixName)种类型的函数描述publicstaticBufferedImage加载BufferedImage对象。getICON(StringfileName)().GetParameter类:获取参数类。主要有获得属性文件保存属性文件回复缺省值取得缺省值的配置文件等方法。类名称GetParameter类描述获取参数。包描述ToolspublicstaticPropertiesgetProp()throwsException获得属性文件。publicstaticbooleansaveProp(Stringkeys,Stringvalues)保存属性文件。函数描throwsIOException述publicstaticbooleansetDefault()throwsIOException回复缺省值publicstaticPropertiesgetDefault()throwsIOException取得缺省值的配置文件。().JQCreater类:JQ号生成器类。主要有产生JQ号码返回保存JQ号码的文件JQ号码是否为屏蔽的JQ号码返回允许注册否等方法。类名称JQCreater类描述JQ号生成器类。包描述ToolsprivateRandomAccessFilegetFile()throws返回保存JQ号码的文件。FileNotFoundException,IOExceptionpublicIntegercreateJQ()throws产生JQ号码FileNotFoundException,IOException函数描述privatebooleanisAllowed(Integernum)JQ号码是否为屏蔽的JQ号码。privatebooleanisAllowReged(Integernum)返回允许注册否throwsFileNotFoundException,IOExceptionpublicIntegercreateID()throws产生User用户IDFileNotFoundException,IOExceptionpublicvoidsaveIDJQ(intid,intnum)throws保存用户的id和JQ号码IOException().RandomUtil类:数学类随机数生成类。主要有生成ab的随机数返回a的随机数的方法。类名称RandomUtil类描述数学类随机数生成类包描述ToolspublicstaticintrandomInt(inta,intb)生成ab的随机数函数描述publicstaticintrandomInt(inta)返回a的随机数。().SetFont类:设置字体类。主要有使用UIManager设置某些组件的缺省字体的方法。类名称SetFont类描述设置字体类。包描述Tools函数描述publicstaticvoidsetFont(Fontfont)使用UIManager设置某些组件的缺省字体。数据模型层(Bean)的详细设计与实现数据模型层(Bean)主要是用来表示数据模型的一些对象类。在该层中主要定义了与各种数据信息相关的类并且每个类中都会有相应的属性也有各种属性的获取与设置的方法不但如此在这些类中有些还改写了hashCode()方法与equals()方法以达到数据唯一的的效果也改写了toString()方法,以方便保存文件时的输出。数据模型层中主要的文件概况如图数据操作层(Dao)的详细设计与实现数据操作层主要有一个总的接口然后根据不同的需要实现了这个总的接口而得到不同的实现类。().接口类的设计主要有查询全部添加一个对象删除一个对象更新一个对象根据id查询对象。其设计如图().LogDaoByFile类的主要实现了接口Dao并且根据需要适当地添加了一些属于自己的方法。如图().UserDaoByFile类的主要实现了接口Dao并且根据需要适当地添加了一些属于自己的方法。如图().RecordDaoByFile类的主要实现了接口Dao并且根据需要适当地添加了一些属于自己的方法。如图业务逻辑与界面的实现层的详细设计与实现().服务端的设计与实现服务端具有服务管理配置管理用户管理在线用户管理日志管理等功能以下对服务管理与用户管理做一些详细的设计分析。)服务管理的主要功能是开启服务器并且监听客户端如果有客户端连接成功就开启服务线程为其服务并且是不停地监听着客户端的连接。总流程图与类设计图分别如图图开启服务器,监听客户端N是否有客户端的连接Y开启一个服务线程,为客户端服务更新相关数据,编写,记录日志关闭服务器,让客户端退出)用户管理的主要功能是显示用户查找用户添加用户修改用户删除用户等该类的功能框架图与类设计图分别如图图().客户端的设计与实现客户端具有用户注册用户登录用户退出等功能以下对用户注册和用户登录做一个详细的设计分析。)用户注册的主要功能就是让用户填写个人资料后尝试申请新用户其流程图如图开始填写个人资料N提交数据,申请用户是否注册成功Y返回注册信息结束)用户登录的主要功能就是让尝试登录登录成功后就可以继续其他的操作了。其流程图如图开始填写登录信息N提交数据,登录用户是否登录成功Y进入主界面结束系统关键技术的分析与设计服务端与客户端的连接服务端主要的是ServicePane这个服务管理类该类实现了Runnable类,并且实现了其中的run方法所以该服务管理类是一个线程类。其中run方法中的设计如图客户端主要是开启一个Socket的端口并尝试与服务端的连接。连接成功后再根据用户的需求去做相关的操作,代码如下:try{client=newSocket(serverIp,serverPort)}catch(Exceptione){eprintStackTrace()}服务线程的的设计在服务端与客户端顺利连接上之后服务端就会开启一个服务线程为其服务这也是整个服务端工作的关键。以下就是服务线程的主要代码Overridepublicvoidrun(){if(ServerisFileWay){try{while(isServiceRunois!=oos!=){是一个阻塞的方法Objectobj=oisreadObject()if(objinstanceofJQMessage){JQMessagemessage=(JQMessage)objinttype=messagegetType()switch(type){case:处理登录dealRegiter(message)breakcase:登录DealLogin(message)breakcase:退出dealQuit(message)breakcase:处理发送私人聊天信息dealMessage(message)breakcase:处理发送公共聊天信息dealPublicMessage(message)breakcase:处理发送查找在线用户数dealFindOnlineUserNum()breakcase:处理查找在线用户dealFindOnlineUser()breakcase:添加好友的要求dealAddUser(message)breakcase:查找的在线用户的要求(公共聊天时的请求)dealPublicFindOnlineUser()breakcase:服务端发送删除好友的请求dealDeleteFriend(message)breakcase:表示客户端用户更改了状态(要求服务器更新状态)updateUserState(jqnum,(Integer)messagegetObj())breakcase:表示客户端用户要求更新在线用户sendAllPublicFindOnlineUser()break}}elsewriteSysLog("客户端"getClientIP()"发送错误的数据信息到服务端")}}catch(IOExceptione){逻辑的慎密~~这里容易忽略removeClientForException(this)closeClient()更新每个人的在线用户}catch(ClassNotFoundExceptione){removeClientForException(this)closeClient()}}else{writeSysLog("注意:系统暂不支持数据库方式!请使用文件方式保存数据!")让客户端退出letClientQuit()}}协议的分析与定义整个简易网络聊天软件的工作之所以能够正常地运作通讯协议就处于一个很重要的地位。就是因为有着通讯协议服务端与客户端都有了遵循的原则。协议定义如图系统展示与功能测试服务端的功能展示().开启服务端开启服务监听客户端的连接,如图().配置管理模块功能显示如图().用户管理模块的功能显示,如图().在线用户管理模块的功能显示,如图().日志管理模块的功能显示,如图客户端的功能展示().客户端的登录界面的功能显示,如图().登录后的主操作界面的功能显示如图().用户注册的功能显示,如图日志文件的查看().系统正常运行之后,就会出现如图的一些文件夹与文件其中leaveRecords文件夹是用来保存用户的离线信息的logs是用来保存用户的操作日记的userRecords文件夹是用来保存用户的聊天记录的users文件夹是用来保存每个用户的信息的logtxt文件是系统的日记文件Serverproperties则是系统的配置文件。().系统日志文件的查看,如图().用户日志文件的查看,如图测试结果经过以上的一些功能显示与功能的测试以及通过查看系统日文件用户日记文件可以知道整个简易网络聊天软件是可以正常运行了。总结此次毕业设计是我们从大学毕业生走向未来重要的一步。从最初的选题开题到分析编码直到完成设计。其间查找资料老师指导与同学交流反复测试修改代码每一个过程都是对自己能力的一次检验和充实。通过这次实践我了解了多方面的Java知识熟悉了Socket通讯的原理也懂得了线程(Thread)的实现。这次实践中所用到的知识有些是课本上所学过的有些是课外自学的。也因为这样使我在巩固学校所学的知识之余也增加了一些课外的学习经验。不过这次实践最重要的还是锻炼了自己的设计实践能力培养了自己独立设计能力。此次毕业设计是对我专业知识和专业基础知识一次实际检验和巩固同时也是走向工作岗位前的一次热身。毕业设计收获很多比如学会了查找相关资料相关标准分析数据提高了自己的自我分析能力与自我学习能力。在设计过程中常常会遇到一些问题解决不了的我会就上网搜查资料或者与同学交流请教指导老师。经过这些努力最后还是把这些问题给解决了。虽然在整个毕业设计的实践中过程是漫长而艰苦的。但是经过努力最后还是把这个毕业设计给完成了看到自己设计的作品可以正常地工作起来自己也会感到欣慰那些设计过程的辛酸自然而然地抛之脑后了。但是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力对材料的不了解等等。这次实践是对自己大学四年所学的一次大检阅使我明白自己知识还很浅薄虽然马上要毕业了但是自己的求学之路还很长以后更应该在工作中学习努力使自己成为一个对社会有所贡献的人为社会建设添上自己的微薄之力。参考文献张海藩软件工程导论(第版)北京:清华大学出版社吴功宜计算机网络(第版)北京:清华大学出版社严蔚敏吴伟民数据结构北京:清华大学出版社BruceEckel著陈昊鹏译Java编程思想北京:机械工业出版社潘晓雷于浚泊王丹等译Java入门经典北京:机械工业出版社吴亚峰纪超JavaSE北京:人民邮电出版社GaryCornell著叶乃文等译Java核心技术北京:机械工业出版社孙卫琴Java面向对象编程北京:电子工业出版社陈刚Eclipse从入门到精通(第版)北京:清华大学出版社周恒民译JavaTCPIPSocket编程北京:机械工业出版社孙卫琴Java网络编程精解北京:电子工业出版社李刚疯狂Java讲义北京:电子工业出版社英文摘要TheSimpleChattingPrograminNetworkWangshaoqiang(ComputerScienceandTechnologyDepartment,ZhongkaiUniversityofAgricultureandEngineeringGuangzhou,China)Abstract:withtherecentrapiddevelopmentofcomputertechnology,especiallythedevelopmentofcomputernetworks,moreprofoundchangesinallaspectsofpeople'slivesItisabletodevelopamoreconvenientandpracticalwebbasedtoolswiththelowerpriceAvarietyofonlineservicessystem,profoundinfluenceonpeople'scontactinformationsothatpeoplecanbeseparatedbythousandsofmilesawayincommunicationsatanytimeOverthepastmanyoldcontacts,hasbeenunabletomeettheneedsofmodernlifeSincetheInternetisthemostpopulartechnology,asanetworkofinformationexchange,oneofthemostdirectmeans,thedevelopmentofchatroomshasbecomeparticularlyimportantInthispaper,thedevelopmentofJavabasedchatroomnetworkfoundationforthepractice,detailingthefunctionsofthechatroomdesignandthespecificstructureoftheinterfacelogic,includingthechatroomservermanagementsystem,alsodiscussedapublicchat,aprivatechatandotherfunctionsrealizedThisdesignmainlydependentonSocketasacommunicationwayanditisdependencetoObjectasacommunicationscarrierInaddition,thecommunicationisbaseonthecertaincommunicationprotocolInterfacemainlyusesSwingtechnologyInordertotheneedforimprovingtheefficiency,itusesathreadtoresolveKeywords:javapublicchatprivatechatsocketthread

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/55

简易网络聊天软件-毕业设计

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利