JAVA聊天室课程设计报告材料含源代码压缩文件资料_第1页
JAVA聊天室课程设计报告材料含源代码压缩文件资料_第2页
JAVA聊天室课程设计报告材料含源代码压缩文件资料_第3页
JAVA聊天室课程设计报告材料含源代码压缩文件资料_第4页
JAVA聊天室课程设计报告材料含源代码压缩文件资料_第5页
免费预览已结束,剩余13页可下载查看

付费下载

下载本文档

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

文档简介

1、实用文档南京晓庄学院« JAVA程序设计?课程设计报告题 目:Java聊天室的设计与实现姓名:戴佳伟学号:14552021班级:14软件工程3班指导教师:王峥完成时间2021.10.7成绩:信息工程学院2021年6月文案大全实用文档目录1 弓I言31.1 java聊天室开发背景31.2 java聊天室开发的目的和意义 31.3 完成的主要工作42 需求分析和总体设计52.1 需求分析与设计思路52.1.1 关键技术说明 52.1.2 需求分析62.1.3 java聊天室设计方案与思路62.1.4 java聊天室目录结构说明 72.2 java聊天室功能结构83 详细设计103.1 j

2、ava聊天室模块实现 103.1.1 XX模块实现104 java聊天室运行结果 135 课程设计总结15文案大全实用文档Java聊天室的设计与实现1引言1.1 Java聊天室开发背景在网络越来越兴旺的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊 天工具越来越多,类似 QQ MSN网络聊天时一类的聊天系统的开展日新月异,因此产生了制作一 个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识.本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线 用户可在同一聊天界面中实现群聊.如果需要与其中的用户进行交谈,那么只需双击右侧

3、用户列表, 读取对方IP地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能.1.1 Java聊天室开发的目的和意义目的:(1)理解进程消息通信的概念,如何实现两个创立进程之间的数据传递.(2)理解进程共享变量的进程通信.(3)熟悉并掌握java语言的代码编写(4)熟练使用开发工具 Eclipse(5)实现聊天室的一些根本功能意义:(1)实现局域网中的信息交互,界面尽量人性化且美观,让用户便于接受(2)用户及时获取自己想要的信息、促进交谈(3)异常处理,对于用户错误的操作使用程序会有提示消息(4)前期仅实现其根本雏形,后期可扩性很高,可实现统计在线人数,发送图片,界面美 化,用户登

4、陆注册信息的采集,连接到数据库etc.(5)后期可便于网站自身的广告宣传与商品推广因所学知识和水平的局限性,仅能完成有限范围内的雏形生成与功能实现,后期的功能实现 需要进一步的深入学习才能使本课程设计日益完善.文案大全实用文档1.2 完成的主要工作(1)需求分析与总体设计、详细设计、代码分析(2)实现程序所能运行的功能(3)选择 Window系统,并选择该操作系统中一种进程通信的方式.(4)运用Eclipse开发工具和java语言实现该应用程序.文案大全实用文档2需求分析和总体设计2.1 需求分析与设计思路2.1.1 关键技术说明程序开发环境与运行环境介绍:JDK(Java Developme

5、nt kit)是SUN公司提供的一套 Java开发环境,通常称之为它主要包括了一些 常用的JDK工具、执行时需要的函数库、与 C连接时所需的文件及一些Java应用程序范例等.是一个编写Java的Applet小程序和应用程序的程序开发环境.JDK是整个Java的核心,包括了 Java运行环境(Java Runtime Envirnment), 一些 Java工具和Java的核心类库(Java API ).不管什么 Java应用效劳器实质都是内置了某个版本的JDK.Java语言介绍:Java是一门面向对象编程语言,不仅吸收了 C+语言的各种优点,还摒弃了 C+里难以理解的多继 承、指针等概念,因此

6、 Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.Java具有简单性、面向对象、分布式、健壮性、平安性、平台独立与可移植性、多线程、动态性等 特点.Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等.Java提供底闩的美机制才回态的构架模中,刈加封左门小用,:态天悬和疗法 很好地实现了模块化和信息隐藏;万美几步供一垄旷森也也不 通过汴.承可市我机制 子 类川以使用或老新定义父类或超类讷提供的一方法 从而既实现rr旧的坦用 又提供一 种动态的解决方案.Java是

7、一.新用序诏一三而数叫布力H字塔冲根本数据更 型外尼其它飞推是天喙 士人回其它,局都心在Java中 如果八创五新淤就九二创道用 .序Java 程序在曷寸必萩上创立,人炎的宽例然后才能提交目;Java凡样支假设处承好性Java的类可以从其它类4继承彳丁为们.Java只支持类的|单重继承即每个类只能从一个类中继承口IJava .察乔力为i 允:午杵序员定义方法但又不立叮实见一:、吴可以/.巩丐个界Hi 利用界面可以得到多重继承的许多优点而又没有多重继承的问题.编程工具介绍:文案大全实用文档Eclipse : 一个开放源代码的、基于Java的可扩展开发平台Eclipse语言开展:Eclipse是著名

8、的跨平台的自由集成开发环境(IDE).最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比方C+和Python等开发工具.Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的 IDE软件很难具有的灵活性.许多软件开发商以 Eclipse为框架开发自己的IDE.Eclipse最初由OTI和IBM两家公司的IDE产品开发组创立,起始于 1999年4月.旧M提供了最 初的Eclipse代码根底,包括 Platform、JDT和PDE.Eclipse工程 旧M 发起,围绕着 Eclipse工程已 经开展成为了一个庞大的E

9、clipse联盟,有150多家软件公司参与到Eclipse工程中,其中包括Borland >Rational Software、Red Hat 及 Sybase 等.Eclipse 是一个开放源码工程,它其实是Visual Age for Java的替代品,其界面跟先前的 Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此根底上开发各自的插件,因此越来越受人们关注.随后还有包括Oracle在内的许多大公司也纷纷参加了该工程,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可.2.1.2 需求分析随着网

10、络和IT技术的快速开展以及日新月异的更新换代,不断渗透到人们的日常生活.如今 Internet已经成为于人们生活息息相关的一局部,也是人们获取有用信息和促进彼此之间相互交流 的便捷重要的途径之一.同时,日益增多的机构和企业组织开始利用网络资源传递、发布、收集和 治理信息,这对网络进行信息交互这种活动是一次很大的机遇与挑战,从而使网络的经营方式充满 了活力.用户需求主要功能分析:(1)聊天交谈功能:用户获取信息的有效途径(2)当前用户显示功能:用户明确自身的登陆状态(3)文本框显示聊天功能:便于用户浏览信息(4)发送消息框显示功能:存放用户输入想要发送的信息文案大全实用文档(5)发送按钮功能:鼠

11、标点击一一发送用户输入消息框的信息(6)用户头像显示功能:个性化用户使用2.1.3 Java聊天室设计方案与思路1 .设计方案:(1)把自身本机的IP地址发送给所有正在翻开这个聊天室程序的人(2)其他人获取了这个IP地址后,会监听这个地址(3)如果有人发送了消息,所有的人都会接收并查看到(4)设计登录程序,使其显示登录的ip地址端口号,以及用户昵称,通过登录按钮可以调用客户端程序,实现聊天功能2.1. 计思路聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普 通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天 即可.因此,在设

12、计聊天系统的过程中,必须要考虑好以下几个设计要点:在Internet上的聊天程序一般都是以效劳器提供效劳端连接响应,使用者通过客户端程序登录到效劳器,就可以与登录在 同一效劳器上的用户交谈,这是一个面向连接的通信过程.因此,程序要在TCP/IP环境下,实现服务器端和客户端两局部程序.1 .首先通过继承JFrame类构造效劳器界面.2 .设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色.3 .设计侦听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能.2.1.3 Java聊天室目录结构说明对系统包结构、文件结本列表说明,如表

13、 2-1、2-2所示.表2-1包名作用文案大全实用文档java.io提供了用于系统的输入和输出,通过数据流,序列化和文件系统.java.io.IOException捕获捕获输入输出异常提供了可移植的网络 I/O接口,包括 TCP/IP、UDP、域名解析和Unix 域 socket.DatagramPacket储存接收到的数据,使用其中的方法提取传送的内容.InetAddress封装IP地址.UnknownHostException捕获主机IP地址无法确定异常java.awt提供了一套与本地图形界面进行交互的接口,建立和设置Java的图形用户界面java.awt.event提供接口和类来解决由a

14、wt组件引起的各种类型的事件javax.swing抽象窗口工具包(AWT )为根底使跨平台应用程序可以使用任何可插拔的外观风格,利用Swing丰富、灵活的功能和模块化组件来创立优雅的用户界面表2-2文件名作用image存放用户头像图片2.2 Java聊天室功能结构对系统实现功能进行说明,分析系统功能结构,画出系统功能结构图,如图 2-1所示.总体功能:(1)实现在同一局域网的聊天(2)程序可以自动扫描已经上线的用户(3)需要与其中的用户进行交谈,那么只需双击右侧用户列表,输入对方IP地址,便可在下面的输入框内输入信息进行发送.(4)添加了用户头像(5)调整了界面窗口文案大全实用文档(6) En

15、ter键实现发送消息功能分段功能:1、效劳器端功能描述:启动效劳器端.2、客户端功能描述:启动客户端;显示登录昵称:显示系统时间:显示聊天记录:发送信息(实现按回车键发送消息);退出聊天室.功能实现:1、采用套接字实现网络中的数据传输2、尽量使用某个或某些应用层的协议实现系统的局部功能3、系统设计标准合理,操作流程方便简单文案大全实用文档详细设计3.1 Java聊天室模块实现3.1.1 聊天功能模块实现1、 实现原理启动该程序时运行如下过程:(1)把自身本机的ip地址发送给所有正在翻开这个聊天室程序的人(2)其他人获取了这个IP地址后,会监听这个地址(3)如果有人发送了消息,所有的人都会接收并

16、查看到2、 分层结构及调用关系说明(1)从main ()函数入口开始分析,实例化 ChatLineFrame这个类并执行类repaint方法,重绘事 件,刷新弹出的窗口的内容(2)在实例化 ChatLineFrame这个类过程中,首先定义ChatLineFrame类继承JFrame,声明成员变量和框架布局内容,然后构造方法,实例化该类的时候,会自动执行函数内的内容.(3)初始化窗口和其他局部(4)实例化 chatJFrame(5)实例化ChatJFrame类,该类实现向外播送消息(6)实例化ReceiveMessage类,该类实现监听并接受消息(7)启动 UDPReceive 类、UserBr

17、oadcast 的线程.(8)在定义初始化方法中,为按钮增加监听行为,实例化 IPListListener类与 SendButtonListener 类.3、 关键代码分析class ChatJFrame extends JFrame / 定义 ChatLineFrame 类继承 JFrameJTextFieldtext1=new JTextField();JTextFieldtext2=new JTextField();JTextFieldtext3=new JTextField("目的主机 IP 地址:");JTextArea TAreaMessage = new JT

18、extArea();文案大全实用文档JButton button = new JButton("发送");DefaultListModel model = new DefaultListModel();ChatJFrame.SendButtonListener listener ;ChatJFrame.IPListListener listener2 ;static DatagramSocket socket = null ; / 消息发送插口static DatagramSocket socketBroadcast = null ;/播送发送插口/声明成员变量public

19、staticfinalint UDP_CONNECT0;publicstaticfinalint UDP_EXIT= 1;publicstaticfinalint UDP_MESSAGE2;publicstaticfinalint UDP_USER_ACK 6;publicstaticStringSEP = "!" ; / 分隔符publicstaticintUDPport = 3333; / 消息发送端口publicstaticintUDPDesPort = 3333;/ 消息接收端口publicstaticintBroadcastPort = 5555; / 播送端口p

20、ublicstaticintBroadcastDesPort = 5555;/ 接收播送端口publicstaticintDataLength = 8192; /数据报默认长度InetAddressiaSource ; / 本机 IP 地址String MyIPAddress ; /IP 地址字符串/如果IP地址为空,那么执行下面的操作if ( this .text2 .getText().equals( "")this . TAreaMessage .append("注意:IP地址栏为空,请双击用户列表, 输入对方IP ! n");void init(

21、)文案大全实用文档setLayout( null ); / 设置布局方式为 NULL this . TAreaMessage .setEditable( false );设置容器X轴上的起点 和Y轴上的起点 以及组件的长度和组件的高度this . TAreaMessage .setBounds(10, 70, 300, 200);this . TAreaMessage .setLineWrap( true );JScrollPane localJScrollPane = newJScrollPane( this . TAreaMessage );localJScrollPane .setBou

22、nds(10, 70, 300, 200);add( localJScrollPane );public void run()Stringstr1 = ChatJFrame. this . MyIPAddress ; /获取 IP 地址信息int i = str1 .lastIndexOf( '.' ); / 用分割符.将 IP 区分割开Stringstr2 = String. valueOf (0) + ChatJFrame.SEP+ChatJFrame. this . MyIPAddress + ChatJFrame. SEPbyte 口 arrayOfByte = str

23、2 .getBytes();while ( true ) try/获取目的IP地址Stringstr3 = str1 .substring(0, i + 1) +String. valueOf (255);/ getAllByName()方法是根据主机名返回其可能的所有InetAddress 对象,保存在一个数组中.InetAddresslocalInetAddress =InetAddress. getByName( str3 );/封装要发送的信息文案大全实用文档DatagramPacketlocalDatagramPacket = newDatagramPacket( arrayOfBy

24、te , arrayOfByte . length , locallnetAddress , ChatJFrame. BroadcastDesPort );/发送消息ChatJFrame. socketBroadcast .send( localDatagramPacket );Thread. sleep (2000L);4、 分析总结总结本模块开发工作,遇到问题如何解决、改良设想及心得体会.此聊天室小系统从整体上是实现的,大局部功能都可以应用,但是个人水平有限,还是有一些缺乏之处,有如下几点:(1)客户端的发送文件功能不完善,本想实现可发送和接收所有文件的功能,但是最终尝试过改良,无法实现,

25、知识简单的文本文档传送功能,而且这也不一定成功.应该是程序不够完善,或是哪里出错(2)客户端的发送表情功能也没有实现,本来的意图是像QQ那样,实现表情图形发送,更加形象,最终还是无法做到,查找相关资料,也没有这局部的讲解,再有时间有限,我也就消除这个功能,改用简单的文字传输(3)效劳器的关闭效劳器按钮实现有点问题,刚开始调试的时候可以,第二次调试下面就出现播送用户命令失败的提示,并且不强行停止 还不会自己停下来,不知道是什么地方出现了问题,希望老师能给予我提示解答.Java聊天室运行结果这里可以实现两个人在同一局域网的聊天,程序可以自动扫描上线的用户.如果需要与其中的 用户进行交谈,那么只需双击用户列表,输入对方ip,便可在下面的输入框内输入信息进行发送.文案大全实用文档在聊天框中输入想要发送的信息,会出现本机发送的信息,以及本机的IP地址.文案大全实用文档4课程设计总结总结本次工作内容及存在的缺乏,改良设想.经过一个多星期的努力,我实现了用JAVA程序设计语言开发的简单聊天室系统,代码

温馨提示

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

评论

0/150

提交评论