计算机科学与技术毕业论文JAVA聊天室的设计.doc
《计算机科学与技术毕业论文JAVA聊天室的设计.doc》由会员分享,可在线阅读,更多相关《计算机科学与技术毕业论文JAVA聊天室的设计.doc(34页珍藏版)》请在三一办公上搜索。
1、湖北大学知行学院本科毕业论文(设计)题 目 基于JAVA的聊天室设计与实现 计算机与信息工程 系 计算机科学与技术 专业学 号 0811050002 学生姓名 指导教师 起讫日期 2011. 10 2012. 4 工作地点 湖北大学知行学院 目 录绪论11课题总体介绍21.1项目开发的目的21.2项目开发的意义22总体设计32.1应用需求分析32.2模块具体分析42.2.1 服务器端模块分析42.2.2 客户端模块分析42.2.3 数据库模块分析42.3聊天室的具体实现52.3.1 登录界面的实现52.3.2注册界面的实现52.3.3 聊天界面的实现52.3.4服务器界面的实现62.3.5 服
2、务器验证登录的实现62.3.6 聊天功能的实现63聊天室的详细设计73.1开发环境的配置73.2开发的过程73.3聊天室功能的测试8结 论10参考文献11致 谢12附 录13基于JAVA的聊天室设计与实现摘 要随着网络的快速发展,网络俨然已经成为了我们了解世界和关注世界各地新动态的一个主要途径了。因此伴随着网络而必然产生的一些软件也越来越多,而能够实现即时通信的聊天软件也是随之诞生,且深受用户们喜爱。而MSN,ICQ,还有国内的QQ等大型聊天软件也成为了人们网络生活中的一部分。本文中主要阐述的是java聊天室的设计过程,以及聊天功能的实现。前台采用的java语言采用C/S架构来设计聊天室,而后
3、台则采用SQL Server2005 创建的数据库和表格来管理用户的信息。然后利用这2种工具的结合来完成聊天室的设计。【关键词】网络 聊天室 即时通信 JAVAChat room Design with realization based on JAVAAbstractWith the rapid development of network, the network has become in a major way for us to understand the world . So with the network and inevitable has some software is
4、 also more and more, and can realize instant communication chat software is also comes and loved by uses. So MSN, ICQ, QQ and other large chat software has become a part of the peoples life for network.This article mainly elaborated in the chat room of the design process is Java, and the realization
5、 of the function of chat. The front desk of the Java language using C/S architecture to design a chat room, and the back desk, using the database and SQL Server2005 create form to manage customer information. Finally, using the combination of these two tools to complete the design of the chat room.【
6、Key words】network Chat room Instant communication JAVAIII湖北大学知行学院本科毕业论文(设计)绪论随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本系统利用Java实现基于C/S模式的聊天程序。聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。服务器端的主要实现在特定端口上进行侦听,等待客户端连接;用户可以配置服务端的侦听端口,默认端口为9999;向已经连接到服务端的用户发送系统消息。客户端的主要功能为
7、:连接到已经开启服务的服务端;用户可以配置要连接的端口号;用户可以配置连接后显示的用户的账号;当服务器端开启的话,用户可以随时登录,用户可以向所有人或某一个人发送消息。从而客户与客户之间以及客户与服务器之间可以简单方便地进行通信。主要使用Sun公司提供Java语言、jdk开发环境及套接字通信socket技术,并利用MyEclipse来进行开发,来是实现对服务器端和客户端之间相互交流的功能。1 课题总体介绍1.1 项目开发的目的本课题的研究主要目的是可以加深我们对java编程思想的理解,让我们养成一个良好的项目开发的编程习惯,同时也是对我们所学的java编程的一个综合提高。而对聊天室的开发也可以
8、更好的理解C/S架构开发的原理,能够更加熟练的使用多线程、异常处理、Socket编程、输入输出流的使用。1.2 项目开发的意义 根据当前网络的需求,网络聊天越来越受各种网民所青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。而本人也学习过JAVA语言,对网络编程也较有兴趣,为了更好的考验自己对JAVA语言的掌握程度,本人就决定以Java聊天室为毕业设计,希望通过这一次能进一步提高本人的网络开发编程的能力。2 总体设计2.1 应用需求分析利用Java实现基于C/S模式的聊天程序,聊天系统不外乎两个
9、方面,服务器端和客户端。服务器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。首先来看一下服务器端的任务:服务器端的主要功能如下:(1)在特定端口上进行侦听,等待客户端连接。(2)用户可以配置服务端的侦听端口,默认端口为9999。(3)向已经连接到服务端的用户发送系统消息。(4)可以启动和关闭服务器。以上就是服务器端最主要任务。不难看出,服务器端的任务并不复杂。客户端的主要功能如下:(1)连接到已经开启服务的服务端。(2)用户可以注册账号。(3)用户可以通过注册好的账号登陆聊天室。(4)用
10、户可以向所有人或某一个人发送消息。相对服务器而言,客户端的任务也不很复杂,有了以上的简单分析,可以知道,解决上述问题,即完成了该聊天系统的核心。聊天室设计好了,同时还需要数据库的支持,数据库的功能就是对用户注册的账号和密码进行管理,当用户登录时可以进行验证。2.2 模块具体分析模块分析示意图如图2.1所示:图2.1模块分析2.2.1 服务器端模块分析服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类.Socket,使得编写网络应用程序相对容易。服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocke
11、t对象来监听来自客户的连接请求,默认端口为8888,然后无限循环调用accept()方法接受客户程序的连接。2.2.2 客户端模块分析客户通过Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造对象流来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,服务器收到来自客户的请求后,针对不同的消息处理请求。2.2.3 数据库模块分析数据库用于管理用户的信息,当用户在注册界面成功注册了账号,就存在数据库的用户表里面,当新用户注册时,将新账号与数据
12、库中的账号比较来验证账号是否纯在,也可以验证账号密码是否正确。2.3 聊天室的具体实现2.3.1 登录界面的实现登陆界面如图2.2所示:图2.2聊天室的登陆界面该界面用到了3个Jlabel,分别是“聊天室登录器”、“账号”、“密码”。用到了1个JTextFilet,1个JpasswordField,和2个Jbuttton(登录和注册)。然后用网格包布局来管理这些控件。当填写了正确的账号和密码后点击登录按钮可以进入聊天界面,错误则提示“用户名或密码错误”:点击注册按钮则可以进入注册账号的界面。2.3.2注册界面的实现注册界面的实现如图2.3所示:图2.3注册界面该界面主要用的了4个Jlabel分
13、别是4个填写文字的部分,然后一个JtextField和2个JpasswordField,用来填写要注册的账号和密码。这些控件被放入第一个Jpanel中,然后放于Jframe的居中部分。然后2个按钮放在了第二个jpanel中,放于jframe的南边。2.3.3 聊天界面的实现聊天界面的实现如图2.4所示:图2.4聊天界面该界面的控件很少,用一个JtextArea来显示用户们的聊天内容,该空间放在了居中部分。然后是在南边有一个JtextField用来填写用户想说的话,然后点击唯一的Jbutton(发送),就可以发送自己说的话了。2.3.4服务器界面的实现服务器界面的实现如图2.5所示:图2.5服务
14、器界面该界面只用到了2个Jbutton,用来启动和关闭服务器。2.3.5 服务器验证登录的实现当用户点击了登录界面的登录按钮之后,用户填写的账号和密码会发送到服务器进行验证,如果账号密码正确,则向客户端发送登录成功的信息;如果账号密码不正确,则向客户端发送信息并以客户端为父窗口弹出子窗口提示说:“账号或密码错误!”。2.3.6 聊天功能的实现用户在聊天界面点击发送按钮后,消息发送到服务器,服务器的消息进行分析,如果是私聊,分析出发送这和接收者后,将消息转发给接收者。如果是发送给所有人,就遍历管理服务器连接所有人线程的hashmap,得到连接所有人的线程,将消息发送给所有人,而客户端则遍历管理所
15、有人的聊天界面的hashmap,得到所有人的聊天界面,将消息发送到所有人的界面上。3 聊天室的详细设计3.1 开发环境的配置JDK(Java Development kit)是 SUN公司提供的一套Java开发环境,通常称之为它主要包括了一些常用的JDK工具、执行时需要的函数库、与C连接时所需的文件及一些Java应用程序范例等。JDK可以从SUN公司的网站或国内一些常用的资料下载网站免费下载而得。下载完毕便可安装JDK。在安装完JDK之后,必须配置环境变量classpath和path,JDK才能够正常运行。.在环境变量中新建名为classpath的环境变量(如已经存在则只要修改),值为:E:P
16、rogram FilesJavajdk1.6.0_10lib.classpath指明Java虚拟机要装载类的路径,“.” 表示当前目录 .在环境变量中新建名为path的环境变量(如已经存在则只要修改),值为:E:Program FilesJavajdk1.6.0_10jrebin.path指明了操作系统查找JDK工具如javac、java等文件的路径Sun公司为程序开发者提供了编译、测试、执行程序等一套完备的工具体系,它们被集中存放在主目录的bin目录下。3.2 开发的过程开发的过程不是盲目的,要有清晰的思路。分好工作区,建好要用到的包,如:界面就写在名为view的包里面,后台运行的类就写在m
17、odel包里面等。类视图1如图3.1所示:图3.1类视图1这是服务器端的开发,model层中的类是在后台运行的程序,view层中的类是服务器界面,启动服务器其实是调用的Server类,这个类才是真正的服务器。而SerConClientThread类是服务器连接客户端的线程类,它的作用是接收客户端发来的消息并且转发出去。ManageClientThread类是管理服务器连接客户端线程的类,这个类用HashMap将服务器连接客户端的所有线程管理了起来,方便调用。同样在客户端的开发也是有良好的分层结构,如图3.2所示:图3.2类视图2其中view层是3个界面类,Chat是聊天界面类,ClientLo
18、gin是登陆界面类,Register是登陆界面类。在这里我给大家介绍一下这些类得功能,在model层中的ClientConServer类是客户端第一次连接服务器要调用的类,也就是登陆时要调用的类,将登陆的信息发给服务器验证,同时创建一个连接服务器的线程。而ClientUser类是客户端用户类,当用户点击登录是会调用这个类,然后由这个类调用ClientConServer类。 在tools层中,这里和之前服务器端的model基本上是一个原理,服务器端管理了服务器连接客户端的线程,这里也是用ManageClientConServerThread类来管理客户端连接服务器端的线程的类ClientConS
19、erverThread。这里的客户端连接服务器的线程类ClientConServerThread是用来读取从服务器发来的消息,并显示数来的。ManageChat则是将所有用户的聊天界面放在一个hashmap里管理起来,当遍历这个hashmap时,就可以将消息显示在所有用户的聊天界面了。然后可以看见在服务器端和客户端都有一个common包,这个是公共包,里面放的是一些javaBean,里面有一些无参数的构造器。它的存在使得客户端与服务器端的信息交互成为了可能。其中Message类里是发送信息时用到的构造器,MessageType类里面是服务器验证登录后返回的信息,User类里面则是用户账号和密码
20、的构造器。而完成上面的所有类中的代码,也是有一定的开发顺序的,首先是完成4个界面的开发。 然后是实现各个界面上的控件的功能和客户端与服务器的链接功能,先完成服务器,设置端口号,完成启动服务器的功能;接着就是客户端连接服务器的功能,再完成服务器对消息的验证和对线程的创建和管理。最后就是客户端对消息的发送和接收以及服务器端对消息的接收验证和转发。3.3 聊天室功能的测试(1)工作过程首先启动服务器,如果启动成功,会再控制台打印出“在9999端口监听”,然后再运行用户登录的类点击注册账号,账号注册成功后再回到登录界面进行登录,点击登录按钮就可以进入聊天室了。(2)测试方法根据工作过程,来启动程序,如
21、果在启动某一程序时出现了错误,先查看错误信息,然后再启动的程序的类里面寻找问题,并多使用System.out.printl方法来打印一些提示的话语,方便自己知道程序运行到了哪一步,是从哪里开始程序没再运行了,通过这样的测试方法就可以慢慢的找到错误的根源,从而不断完善聊天室的功能。(3)聊天功能的测试在测试聊天的功能时,主要是站在用户的角度,看看聊天的功能是否真的实现,因此,当程序全部都成功启动后,就可以注册几个账号,同时登陆2到3个进入聊天室,让他们相互聊天,在私聊和群聊里面都发送一些消息,看看是否达到了预期的效果。结 论(一)毕业设计的总结和展望本聊天室实现了简单的实时聊天功能,经过细心的调
22、试和排错解决了绝大部分的问题。但几乎每一个计算机程序都会有这样那样的不足,尤其是未经过精心维护的非商业软件。即使是作为操作系统的各种版本的Windows也时常会发生许多类型的错误和漏洞。本聊天系统程序对于初涉此领域的毕业设计课题来说,尤其在开始初期,感觉逻辑复杂,难以控制,因此至今还有许多未能解决的缺陷。目前本聊天系统还有待完善的功能列表如下:(1)因为设想中是在显示聊天信息的地方点击说话人的账号就可以直接与其私聊,但是也实现不了这个功能,所以私聊功能也暂时搁浅,只完成了群聊的功能。(2)聊天系统缺乏各种屏蔽发言、发送表情、踢人等功能;(3)因为电脑无法连接数据源,导致数据库不能被程序使用,所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 技术 毕业论文 JAVA 聊天室 设计

链接地址:https://www.31ppt.com/p-4863452.html